How to use webkit method in Playwright Python

Best Python code snippet using playwright-python

constants_css_webkit_extensions.py

Source:constants_css_webkit_extensions.py Github

copy

Full Screen

1"""2Safari/Webkit CSS extensions.3"""4import textwrap5### START: Auto generated6CSS_WEBKIT_DATA = {7 '-webkit-animation':8{ 'description': u'Combines common animation properties into a single property.',9 'syntax': u'-webkit-animation: name duration timing_function delay iteration_count direction [, ... ];',10 'values': { u'delay': u'Defines when an animation starts.',11 u'direction': u'Determines whether the animation should play in reverse on alternate iterations.',12 u'duration': u'Specifies the length of time that an animation takes to complete one iteration.',13 u'iteration_count': u'Specifies the number of times an animation iterates.',14 u'name': u'The name of the animation.',15 u'timing_function': u'Defines how an animation progresses between keyframes.'},16 'versions': [u'Safari 4.0', u'iPhone OS 2.0']},17 '-webkit-animation-delay':18{ 'description': u'Defines when an animation starts.',19 'syntax': u'-webkit-animation-delay: time [, ...];',20 'values': { u'0': u'(by default) ',21 u'now': u'The animation begins immediately. Available in iPhone OS 2.0 and later.'},22 'versions': [u'Safari 4.0', u'iPhone OS 2.0']},23 '-webkit-animation-direction':24{ 'description': u'Determines whether the animation should play in reverse on alternate iterations.',25 'syntax': u'-webkit-animation-direction: direction [, ...]',26 'values': { u'alternate': u'Play even-numbered iterations of the animation in the forward direction and odd-numbered iterations in the reverse direction. \n When an animation is played in reverse, the timing functions are also reversed. For example, when played in reverse, an ease-in animation appears as an ease-out animation.',27 u'normal': u'(by default) Play each iteration of the animation in the forward direction.'},28 'versions': [u'Safari 4.0', u'iPhone OS 2.0']},29 '-webkit-animation-duration':30{ 'description': u'Specifies the length of time that an animation takes to complete one iteration.',31 'syntax': u'-webkit-animation-duration: time [, ...]',32 'values': { u'0': u'(by default) ', u'<time>': ''},33 'versions': [u'Safari 4.0', u'iPhone OS 2.0']},34 '-webkit-animation-iteration-count':35{ 'description': u'Specifies the number of times an animation iterates.',36 'syntax': u'-webkit-animation-iteration-count: number [, ...]',37 'values': { u'1': u'(by default) ',38 u'infinite': u'Repeats the animation forever.'},39 'versions': [u'Safari 4.0', u'iPhone OS 2.0']},40 '-webkit-animation-name':41{ 'description': u'Specifies the name of an animation.',42 'syntax': u'-webkit-animation-name: name [, ...]',43 'values': { u'name': u'The name of the animation.'},44 'versions': [u'Safari 4.0', u'iPhone OS 2.0']},45 '-webkit-animation-play-state':46{ 'description': u'Determines whether the animation is running or paused.',47 'syntax': u'-webkit-animation-play-state: play_state [, ...];',48 'values': { u'paused': u'Pauses the animation.',49 u'running': u'(by default) Plays the animation.'},50 'versions': [u'Safari 4.0', u'iPhone OS 2.0']},51 '-webkit-animation-timing-function':52{ 'description': u'Defines how an animation progresses between keyframes.',53 'syntax': u'-webkit-animation-timing-function: function [, ...]',54 'values': { u'<function>': '',55 u'ease': u'(by default) Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0) .',56 u'ease-in': u'Equivalent to cubic-bezier(0.42, 0, 1.0, 1.0) .',57 u'ease-in-out': u'Equivalent to cubic-bezier(0.42, 0, 0.58, 1.0) .',58 u'ease-out': u'Equivalent to cubic-bezier(0, 0, 0.58, 1.0) .',59 u'linear': u'Equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0) .'},60 'versions': [u'Safari 4.0', u'iPhone OS 2.0']},61 '-webkit-appearance':62{ 'description': u'Changes the appearance of buttons and other controls to resemble native controls.',63 'syntax': u'-webkit-appearance: appearance;',64 'values': { u'button': '',65 u'button-bevel': '',66 u'caps-lock-indicator': u'The indicator that appears in a password field when Caps Lock is active. Available in Safari 4.0 and later. Available in iPhone OS 2.0 and later.',67 u'caret': '',68 u'checkbox': '',69 u'default-button': '',70 u'listbox': '',71 u'listitem': '',72 u'media-fullscreen-button': '',73 u'media-mute-button': '',74 u'media-play-button': '',75 u'media-seek-back-button': '',76 u'media-seek-forward-button': '',77 u'media-slider': '',78 u'media-sliderthumb': '',79 u'menulist': '',80 u'menulist-button': '',81 u'menulist-text': '',82 u'menulist-textfield': '',83 u'none': '',84 u'push-button': '',85 u'radio': '',86 u'scrollbarbutton-down': u'Unsupported in Safari 4.0',87 u'scrollbarbutton-left': u'Unsupported in Safari 4.0',88 u'scrollbarbutton-right': u'Unsupported in Safari 4.0',89 u'scrollbarbutton-up': u'Unsupported in Safari 4.0',90 u'scrollbargripper-horizontal': u'Unsupported in Safari 4.0',91 u'scrollbargripper-vertical': u'Unsupported in Safari 4.0',92 u'scrollbarthumb-horizontal': u'Unsupported in Safari 4.0',93 u'scrollbarthumb-vertical': u'Unsupported in Safari 4.0',94 u'scrollbartrack-horizontal': u'Unsupported in Safari 4.0',95 u'scrollbartrack-vertical': u'Unsupported in Safari 4.0',96 u'searchfield': '',97 u'searchfield-cancel-button': '',98 u'searchfield-decoration': '',99 u'searchfield-results-button': '',100 u'searchfield-results-decoration': '',101 u'slider-horizontal': '',102 u'slider-vertical': '',103 u'sliderthumb-horizontal': '',104 u'sliderthumb-vertical': '',105 u'square-button': '',106 u'textarea': '',107 u'textfield': ''},108 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},109 '-webkit-backface-visibility':110{ 'description': u'Determines whether or not a transformed element is visible when it is not facing the screen.',111 'syntax': u'-webkit-backface-visibility: visibility;',112 'values': { u'hidden': u'The element is invisible if it is not facing the screen.',113 u'visible': u'(by default) The element is always visible even when it is not facing the screen.'},114 'versions': [u'iPhone OS 2.0']},115 '-webkit-background-clip':116{ 'description': u'Specifies the clipping behavior of the background of a box.',117 'syntax': u'-webkit-background-clip: behavior;',118 'values': { u'border': u'The background clips to the border of the box.',119 u'content': u'The background clips to the content of the box.',120 u'padding': u'The background clips to the padding of the box.',121 u'text': u'The background clips to the text of the box. Available in Safari 4.0 and later.'},122 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},123 '-webkit-background-composite':124{ 'description': u'Sets a compositing style for background images and colors.',125 'syntax': u'-webkit-background-composite: compositing_style;',126 'values': { u'border': u'(by default) The background extends into the border area',127 u'padding': u'The background extends only into the padding area enclosed by the border'},128 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},129 '-webkit-background-origin':130{ 'description': u'Determines where the background-position property is anchored.',131 'syntax': u'-webkit-background-origin: origin;',132 'values': { u'origin': u'The origin of the background position.'},133 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},134 '-webkit-background-size':135{ 'description': u'Overrides the size of a background image.',136 'syntax': u'-webkit-background-size: length;',137 'values': { u'length': u'The width and height of the background image.',138 u'length_x': u'The width of the background image.',139 u'length_y': u'The height of the background image.'},140 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},141 '-webkit-border-bottom-left-radius':142{ 'description': u'Specifies that the bottom-left corner of a box be rounded with the specified radius.',143 'syntax': u'-webkit-border-bottom-left-radius: radius;',144 'values': { u'horizontal_radius': u'The horizontal radius of the rounded corner.',145 u'radius': u'The radius of the rounded corner.',146 u'vertical_radius': u'The vertical radius of the rounded corner.'},147 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},148 '-webkit-border-bottom-right-radius':149{ 'description': u'Specifies that the bottom-right corner of a box be rounded with the specified radius.',150 'syntax': u'-webkit-border-bottom-right-radius: radius;',151 'values': { u'horizontal_radius': u'The horizontal radius of the rounded corner.',152 u'radius': u'The radius of the rounded corner.',153 u'vertical_radius': u'The vertical radius of the rounded corner.'},154 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},155 '-webkit-border-horizontal-spacing':156{ 'description': u'Defines the spacing between the horizontal portion of an element\u2019s border and the content within.',157 'syntax': u'-webkit-border-horizontal-spacing: value;',158 'values': { u'value': u'The amount of horizontal spacing.'},159 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},160 '-webkit-border-image':161{ 'description': u'Specifies an image as the border for a box.',162 'syntax': u'-webkit-border-image: uri top right bottom left x_repeat y_repeat',163 'values': { u'repeat': u'The image is tiled.',164 u'round': u'The image is stretched before it is tiled to prevent partial tiles.',165 u'stretch': u'The image is stretched to the size of the border.'},166 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},167 '-webkit-border-radius':168{ 'description': u'Specifies that the corners of a box be rounded with the specified radius.',169 'syntax': u'-webkit-border-radius: radius;',170 'values': { u'horizontal_radius': u'The horizontal radius of the rounded corners.',171 u'radius': u'The radius of the rounded corners.',172 u'vertical_radius': u'The vertical radius of the rounded corners.'},173 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},174 '-webkit-border-top-left-radius':175{ 'description': u'Specifies that the top-left corner of a box be rounded with the specified radius.',176 'syntax': u'-webkit-border-top-left-radius: radius;',177 'values': { u'horizontal_radius': u'The horizontal radius of the rounded corner.',178 u'radius': u'The radius of the rounded corner.',179 u'vertical_radius': u'The vertical radius of the rounded corner.'},180 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},181 '-webkit-border-top-right-radius':182{ 'description': u'Specifies that the top-right corner of a box be rounded with the specified radius.',183 'syntax': u'-webkit-border-top-right-radius: radius;',184 'values': { u'horizontal_radius': u'The horizontal radius of the rounded corner.',185 u'radius': u'The radius of the rounded corner.',186 u'vertical_radius': u'The vertical radius of the rounded corner.'},187 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},188 '-webkit-border-vertical-spacing':189{ 'description': u'Defines the spacing between the vertical portion of an element\u2019s border and the content within.',190 'syntax': u'-webkit-border-vertical-spacing: value;',191 'values': { u'value': u'The amount of vertical spacing.'},192 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},193 '-webkit-box-align':194{ 'description': u'Specifies the alignment of nested elements within an outer flexible box element.',195 'syntax': u'-webkit-box-align: alignment;',196 'values': { u'baseline': u'Elements are aligned with the baseline of the box.',197 u'center': u'Elements are aligned with the center of the box.',198 u'end': u'Elements are aligned with the end of the box.',199 u'start': u'Elements are aligned with the start of the box.',200 u'stretch': u'Elements are stretched to fill the box.'},201 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},202 '-webkit-box-direction':203{ 'description': u'Specifies the direction in which child elements of a flexible box element are laid out.',204 'syntax': u'-webkit-box-direction: layout_direction;',205 'values': { u'normal': u'(by default) Elements are laid out in the default direction.',206 u'reverse': u'Elements are laid out in the reverse direction.'},207 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},208 '-webkit-box-flex':209{ 'description': u'Specifies an element\u2019s flexibility.',210 'syntax': u'-webkit-box-flex: flex_value;',211 'values': { u'<flexvalue>': u'Floating-point number'},212 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},213 '-webkit-box-flex-group':214{ 'description': u'Specifies groups of dynamically resizing elements that are adjusted to be the same size.',215 'syntax': u'-webkit-box-flex-group: group_number;',216 'values': { u'<group_number>': u'Integer, nonnegative value'},217 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},218 '-webkit-box-lines':219{ 'description': u'Specifies whether a flexible box should contain multiple lines of content.',220 'syntax': u'-webkit-box-lines: behavior;',221 'values': { u'multiple': u'The box can contain multiple lines of content.',222 u'single': u'The box can contain only one line of content.'},223 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},224 '-webkit-box-ordinal-group':225{ 'description': u'Specifies a rough ordering of elements in a flexible box.',226 'syntax': u'-webkit-box-ordinal-group: group_number;',227 'values': { u'<group_number>': u'Integer, nonnegative value'},228 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},229 '-webkit-box-orient':230{ 'description': u'Specifies the layout of elements nested within a flexible box element.',231 'syntax': u'-webkit-box-orient: orientation;',232 'values': { u'block-axis': u"Elements are oriented along the box's axis.",233 u'horizontal': u'Elements are oriented horizontally.',234 u'inline-axis': u'Elements are oriented along the inline axis.',235 u'vertical': u'Elements are oriented vertically.'},236 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},237 '-webkit-box-pack':238{ 'description': u'Specifies alignment of child elements within the current element in the direction of orientation.',239 'syntax': u'-webkit-box-pack: alignment;',240 'values': { u'center': u'Child elements are aligned to the center of the element.',241 u'end': u'Child elements are aligned to the end of the element.',242 u'justify': u'Child elements are justified with both the start and end of the element.',243 u'start': u'Child elements are aligned to the start of the element.'},244 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},245 '-webkit-box-reflect':246{ 'description': u'Defines a reflection of a border box.',247 'syntax': u'-webkit-box-reflect: direction offset mask-box-image;',248 'values': { u'above': u'The reflection appears above the border box.',249 u'below': u'The reflection appears below the border box.',250 u'left': u'The reflection appears to the left of the border box.',251 u'right': u'The reflection appears to the right of the border box.'},252 'versions': [u'iPhone OS 2.0']},253 '-webkit-box-shadow':254{ 'description': u'Applies a drop shadow effect to the border box of an object.',255 'syntax': u'-webkit-box-shadow: hoff voff blur color;',256 'values': { u'none': u'(by default) The box has no shadow.'},257 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},258 '-webkit-box-sizing':259{ 'description': u'Specifies that the size of a box be measured according to either its content (default) or its total size including borders.',260 'syntax': u'-webkit-box-sizing: sizing_model;',261 'values': { u'border-box': u'The box size includes borders in addition to content.',262 u'content-box': u'(by default) The box size only includes content.'},263 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},264 '-webkit-column-break-after':265{ 'description': u'Determines whether a column break can and should occur after an element in a multicolumn flow layout.',266 'syntax': u'-webkit-column-break-after: policy;',267 'values': { u'always': u'A column break is always inserted after the element.',268 u'auto': u'(by default) A right column break is inserted after the element where appropriate.',269 u'avoid': u'Column breaks are avoided after the element.',270 u'left': u'A left column break is inserted after the element.',271 u'right': u'A right column break is inserted after the element.'},272 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},273 '-webkit-column-break-before':274{ 'description': u'Determines whether a column break can and should occur before an element in a multicolumn flow layout.',275 'syntax': u'-webkit-column-break-before: policy;',276 'values': { u'always': u'A column break is always inserted before the element.',277 u'auto': u'(by default) A right column break is inserted before the element where appropriate.',278 u'avoid': u'Column breaks are avoided before the element.',279 u'left': u'A left column break is inserted before the element.',280 u'right': u'A right column break is inserted before the element.'},281 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},282 '-webkit-column-break-inside':283{ 'description': u'Determines whether a column break should be avoided within the bounds of an element in a multicolumn flow layout.',284 'syntax': u'-webkit-column-break-inside: policy;',285 'values': { u'auto': u'(by default) A right column break is inserted within the element where appropriate.',286 u'avoid': u'Column breaks are avoided within the element.'},287 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},288 '-webkit-column-count':289{ 'description': u'Specifies the number of columns desired in a multicolumn flow.',290 'syntax': u'-webkit-column-count: number_of_columns;',291 'values': { u'<number_of_columns>': u'Integer, nonnegative value',292 u'auto': u'(by default) The element has one column.'},293 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},294 '-webkit-column-gap':295{ 'description': u'Specifies the space between columns in a multicolumn flow.',296 'syntax': u'-webkit-column-gap: width;',297 'values': { u'<width>': u'Length unit',298 u'normal': u'(by default) Columns in the element have the normal gap width between them.'},299 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},300 '-webkit-column-rule':301{ 'description': u'Specifies the color, style, and width of the column rule.',302 'syntax': u'-webkit-column-rule: width style color;',303 'values': { u'color': u'The color of the column rule.',304 u'style': u'The style of the column rule.',305 u'width': u'The width of the column rule.'},306 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},307 '-webkit-column-rule-color':308{ 'description': u'Specifies the color of the column rule.',309 'syntax': u'-webkit-column-rule-color: color;',310 'values': { u'-webkit-activelink': u'The default color of a hyperlink that is being clicked.',311 u'-webkit-focus-ring-color': u'The color that surrounds a UI element, such as a text field, that has focus.',312 u'-webkit-link': u'The default color of a hyperlink that has been visited.',313 u'-webkit-text': u'The default text color.',314 u'activeborder': '',315 u'activecaption': '',316 u'appworkspace': '',317 u'aqua': '',318 u'background': '',319 u'black': '',320 u'blue': '',321 u'buttonface': '',322 u'buttonhighlight': '',323 u'buttonshadow': '',324 u'buttontext': '',325 u'captiontext': '',326 u'currentcolor': u"(by default) The value of the element's color property.",327 u'fuchsia': '',328 u'gray': '',329 u'graytext': '',330 u'green': '',331 u'grey': '',332 u'highlight': '',333 u'highlighttext': '',334 u'inactiveborder': '',335 u'inactivecaption': '',336 u'inactivecaptiontext': '',337 u'infobackground': '',338 u'infotext': '',339 u'lime': '',340 u'maroon': '',341 u'match': '',342 u'menu': '',343 u'menutext': '',344 u'navy': '',345 u'olive': '',346 u'orange': '',347 u'purple': '',348 u'red': '',349 u'scrollbar': '',350 u'silver': '',351 u'teal': '',352 u'threeddarkshadow': '',353 u'threedface': '',354 u'threedhighlight': '',355 u'threedlightshadow': '',356 u'threedshadow': '',357 u'transparent': '',358 u'white': '',359 u'window': '',360 u'windowframe': '',361 u'windowtext': '',362 u'yellow': ''},363 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},364 '-webkit-column-rule-style':365{ 'description': u'Specifies the style of the column rule.',366 'syntax': u'-webkit-column-rule-style: style;',367 'values': { u'dashed': u'The column rule has a dashed line style.',368 u'dotted': u'The column rule has a dotted line style.',369 u'double': u'The column rule has a double solid line style.',370 u'groove': u'The column rule has a grooved style.',371 u'hidden': u'The column rule is hidden.',372 u'inset': u'The column rule has an inset style.',373 u'none': u'The column rule has no style.',374 u'outset': u'The column rule has an outset style.',375 u'ridge': u'The column rule has a ridged style.',376 u'solid': u'The column rule has a solid line style.'},377 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},378 '-webkit-column-rule-width':379{ 'description': u'Specifies the width of the column rule.',380 'syntax': u'-webkit-column-rule-width: width;',381 'values': { u'<width>': u'Length unit',382 u'medium': u'The column rule has a medium width.',383 u'thick': u'The column rule has a thick width.',384 u'thin': u'The column rule has a thin width.'},385 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},386 '-webkit-column-width':387{ 'description': u'Specifies the width of the column in a multicolumn flow.',388 'syntax': u'-webkit-column-width: width;',389 'values': { u'<width>': u'Length unit',390 u'auto': u'(by default) Columns in the element are of normal width.'},391 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},392 '-webkit-columns':393{ 'description': u'A composite property that specifies the width and number of columns in a multicolumn flow layout.',394 'syntax': u'-webkit-columns: width count;',395 'values': { u'count': u'The number of columns.',396 u'width': u'The width of each column.'},397 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},398 '-webkit-dashboard-region':399{ 'description': u'Specifies the behavior of regions in a Dashboard widget.',400 'syntax': u'-webkit-dashboard-region: dashboard-region(...) [...];',401 'values': { u'none': u'No behavior is specified.'},402 'versions': [u'Safari 3.0']},403 '-webkit-line-break':404{ 'description': u'Specifies line-breaking rules for CJK (Chinese, Japanese, and Korean) text.',405 'syntax': u'-webkit-line-break: setting;',406 'values': { u'after-white-space': u'The line breaks after white space.',407 u'normal': u'(by default) A standard line-breaking rule.'},408 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},409 '-webkit-margin-bottom-collapse':410{ 'description': u"Specifies the behavior of an element's bottom margin if it is adjacent to an element with a margin. Elements can maintain their respective margins or share a single margin between them.",411 'syntax': u'-webkit-margin-bottom-collapse: collapse_behavior;',412 'values': { u'collapse': u'Two adjacent margins are collapsed into a single margin.',413 u'discard': u'The element\u2019s margin is discarded if it is adjacent to another element with a margin.',414 u'separate': u'Two adjacent margins remain separate.'},415 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},416 '-webkit-margin-collapse':417{ 'description': u'Specifies the behavior of an element\u2019s vertical margins if it is adjacent to an element with a margin. Elements can maintain their respective margins or share a single margin between them.',418 'syntax': u'-webkit-margin-collapse: collapse_behavior;',419 'values': { u'collapse_behavior': u'The behavior of the vertical margins.'},420 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},421 '-webkit-margin-start':422{ 'description': u'Provides the width of the starting margin.',423 'syntax': u'-webkit-margin-start: width;',424 'values': { u'<width>': u'Number as a percentage, length unit',425 u'auto': u'(by default) The margin is automatically determined.'},426 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},427 '-webkit-margin-top-collapse':428{ 'description': u'Specifies the behavior of an element\u2019s top margin if it is adjacent to an element with a margin. Elements can maintain their respective margins or share a single margin between them.',429 'syntax': u'-webkit-margin-top-collapse: collapse_behavior;',430 'values': { u'collapse': u'Two adjacent margins are collapsed into a single margin.',431 u'discard': u'The element\u2019s margin is discarded if it is adjacent to another element with a margin.',432 u'separate': u'Two adjacent margins remain separate.'},433 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},434 '-webkit-marquee':435{ 'description': u'Defines properties for showing content as though displayed on an electronic marquee sign.',436 'syntax': u'-webkit-marquee: direction increment repetition style speed;',437 'values': { u'direction': u'The direction of the marquee.',438 u'increment': u'The distance the marquee moves in each increment',439 u'repetition': u'The number of times the marquee repeats.',440 u'speed': u'The scroll or slide speed of the marquee.',441 u'style': u'The style of the marquee\u2019s motion.'},442 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},443 '-webkit-marquee-direction':444{ 'description': u'Specifies the direction of motion for a marquee box.',445 'syntax': u'-webkit-marquee-direction: direction;',446 'values': { u'ahead': u'The marquee moves from bottom to top.',447 u'auto': u'(by default) The marquee moves in the default direction.',448 u'backwards': u'The marquee moves from right to left.',449 u'down': u'The marquee moves from bottom to top.',450 u'forwards': u'The marquee moves from left to right.',451 u'left': u'The marquee moves from right to left.',452 u'reverse': u'The marquee moves from top to bottom.',453 u'right': u'The marquee moves from left to right.',454 u'up': u'The marquee moves from bottom to top.'},455 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},456 '-webkit-marquee-increment':457{ 'description': u'Defines the distance the marquee moves in each increment.',458 'syntax': u'-webkit-marquee-increment: distance;',459 'values': { u'<distance>': u'Number as a percentage, length unit',460 u'large': u'The marquee moves a large amount in each increment.',461 u'medium': u'The marquee moves a medium amount in each increment.',462 u'small': u'The marquee moves a small amount in each increment.'},463 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},464 '-webkit-marquee-repetition':465{ 'description': u'Specifies the number of times a marquee box repeats (or infinite ).',466 'syntax': u'-webkit-marquee-repetition: iterations;',467 'values': { u'<iterations>': u'Integer, nonnegative value',468 u'infinite': u'(by default) The marquee repeats infinitely.'},469 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},470 '-webkit-marquee-speed':471{ 'description': u'Defines the scroll or slide speed of a marquee box.',472 'syntax': u'-webkit-marquee-speed: speed;',473 'values': { u'<distance>': u'Integer, nonnegative value',474 u'<time>': u'Time unit, nonnegative value',475 u'fast': u'The marquee moves at a fast speed.',476 u'normal': u'The marquee moves at a normal speed.',477 u'slow': u'The marquee moves at a slow speed.'},478 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},479 '-webkit-marquee-style':480{ 'description': u'Specifies the style of marquee motion.',481 'syntax': u'-webkit-marquee-style: style;',482 'values': { u'alternate': u'The marquee shifts back and forth.',483 u'none': u'The marquee does not move.',484 u'scroll': u'The marquee loops in its specified direction.',485 u'slide': u'The marquee moves in its specified direction, but stops either when the entirety of its content has been displayed or the content reaches the opposite border of its box, whichever comes second.'},486 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},487 '-webkit-mask':488{ 'description': u'Defines a variety of mask properties within one declaration.',489 'syntax': u'-webkit-mask: attachment, clip, origin, image, repeat, composite, box-image;',490 'values': { u'attachment': u'Defines the scrolling or fixed nature of the image mask. See -webkit-mask-attachment .',491 u'clip': u'Specifies whether the mask should extend into the border of a box. See -webkit-mask-clip .',492 u'composite': u'Sets a compositing style for a mask. See -webkit-mask-composite .',493 u'image': u'Defines an image to be used as a mask for an element. See -webkit-mask-image .',494 u'origin': u'Determines where the -webkit-mask-position property is anchored. See -webkit-mask-origin .',495 u'repeat': u'Defines the repeating qualities of a mask. See -webkit-mask-repeat .'},496 'versions': [u'Safari 4.0']},497 '-webkit-mask-attachment':498{ 'description': u'Defines the scrolling or fixed nature of the image mask.',499 'syntax': u'-webkit-mask-attachment: mask_attachment;',500 'values': { u'fixed': u'The mask does not move when the page scrolls.',501 u'scroll': u'The image moves when the page scrolls.'},502 'versions': [u'Safari 4.0']},503 '-webkit-mask-box-image':504{ 'description': u'Defines an image to be used as a mask for a border box.',505 'syntax': u'-webkit-mask-box-image: uri top right bottom left x_repeat y_repeat;',506 'values': { u'bottom': u'The distance from the bottom edge of the image.',507 u'left': u'The distance from the left edge of the image.',508 u'right': u'The distance from the right edge of the image.',509 u'top': u'The distance from the top edge of the image.',510 u'uri': u'The file path of the image.',511 u'x_repeat': u'The horizontal repeat style.',512 u'y_repeat': u'The vertical repeat style.'},513 'versions': [u'Safari 4.0']},514 '-webkit-mask-clip':515{ 'description': u'Specifies whether the mask should extend into the border of a box.',516 'syntax': u'-webkit-mask-clip: behavior;',517 'values': { u'behavior': u'The clipping behavior of the mask.'},518 'versions': [u'Safari 4.0']},519 '-webkit-mask-composite':520{ 'description': u'Sets a compositing style for a mask.',521 'syntax': u'-webkit-mask-composite: compositing_style;',522 'values': { u'border': u'(by default) ', u'padding': ''},523 'versions': [u'Safari 4.0']},524 '-webkit-mask-image':525{ 'description': u'Defines an image to be used as a mask for an element.',526 'syntax': u'-webkit-mask-image: value;',527 'values': { u'value': u'The file path of the image.'},528 'versions': [u'Safari 4.0']},529 '-webkit-mask-origin':530{ 'description': u'Determines where the -webkit-mask-position property is anchored.',531 'syntax': u'-webkit-mask-origin: origin;',532 'values': { u'border': u"The mask's position is anchored at the upper-left corner of the element's border.",533 u'content': u"The mask's position is anchored at the upper-left corner of the element's content.",534 u'padding': u"The mask's position is anchored at the upper-left corner of the element's padding."},535 'versions': [u'Safari 4.0']},536 '-webkit-mask-position':537{ 'description': u'Defines the position of a mask.',538 'syntax': u'-webkit-mask-position: xpos;',539 'values': { u'<position>': '',540 u'bottom': '',541 u'center': '',542 u'left': '',543 u'right': '',544 u'top': ''},545 'versions': [u'Safari 4.0']},546 '-webkit-mask-position-x':547{ 'description': u'Defines the x-coordinate of the position of a mask.',548 'syntax': u'-webkit-mask-position-x: value;',549 'values': { u'value': u'The x-coordinate of the position of the mask.'},550 'versions': [u'Safari 4.0']},551 '-webkit-mask-position-y':552{ 'description': u'Defines the y-coordinate of the position of a mask.',553 'syntax': u'-webkit-mask-position-y: value;',554 'values': { u'value': u'The y-coordinate of the position of the mask.'},555 'versions': [u'Safari 4.0']},556 '-webkit-mask-repeat':557{ 'description': u'Defines the repeating qualities of a mask.',558 'syntax': u'-webkit-mask-repeat: value;',559 'values': { u'value': u'The repeating behavior of the mask.'},560 'versions': [u'Safari 4.0']},561 '-webkit-mask-size':562{ 'description': u'Overrides the size of a mask.',563 'syntax': u'-webkit-mask-size: length;',564 'values': { u'length': u'The width and height of the mask.',565 u'length_x': u'The width of the mask.',566 u'length_y': u'The height of the mask.'},567 'versions': [u'Safari 4.0']},568 '-webkit-nbsp-mode':569{ 'description': u'Defines the behavior of nonbreaking spaces within text.',570 'syntax': u'-webkit-nbsp-mode: behavior;',571 'values': { u'normal': u'Nonbreaking spaces are treated as usual.',572 u'space': u'Nonbreaking spaces are treated like standard spaces.'},573 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},574 '-webkit-padding-start':575{ 'description': u'Provides the width of the starting padding.',576 'syntax': u'-webkit-padding-start: width;',577 'values': { u'<length>': '', u'<percentage>': ''},578 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},579 '-webkit-perspective':580{ 'description': u'Gives depth to a scene, causing elements farther away from the viewer to appear smaller.',581 'syntax': u'-webkit-perspective: value;',582 'values': { u'<distance>': u'Length in pixel',583 u'none': u'(by default) No perspective transform is applied.'},584 'versions': [u'iPhone OS 2.0']},585 '-webkit-perspective-origin':586{ 'description': u'Sets the origin of the -webkit-perspective property described in "-webkit-perspective."',587 'syntax': u'-webkit-perspective-origin: posx posy;',588 'values': { u'50%': u'50% (by default) ',589 u'<percentage>': '',590 u'bottom': u'Sets the y-origin to the bottom of the element\u2019s border box.',591 u'center': u'Sets the x or y origin to the center of the element\u2019s border box. If this constant appears before left or right , specifies the y-origin. If it appears after top or bottom , specifies the x-origin. If appears alone, centers both the x and y origin.',592 u'left': u'Sets the x-origin to the left side of the border box.',593 u'right': u'Sets the x-origin to the right side of the border box.',594 u'top': u'Sets the y-origin to the top of the element\u2019s border box.'},595 'versions': [u'iPhone OS 2.0']},596 '-webkit-rtl-ordering':597{ 'description': u'Overrides ordering defaults for right-to-left content.',598 'syntax': u'-webkit-rtl-ordering: order;',599 'values': { u'logical': u'Raw content is in mixed order (requiring a bidirectional renderer).',600 u'visual': u'Right-to-left content is encoded in reverse order so an entire line of text can be rendered from left to right in a unidirectional fashion.'},601 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},602 '-webkit-tap-highlight-color':603{ 'description': u'Overrides the highlight color shown when the user taps a link or a JavaScript clickable element in Safari on iPhone.',604 'syntax': u'-webkit-tap-highlight-color: color;',605 'values': { u'color': u'The tapped link color.'},606 'versions': [u'iPhone OS 1.1.1']},607 '-webkit-text-fill-color':608{ 'description': u'Specifies a fill color for text.',609 'syntax': u'-webkit-text-fill-color: color;',610 'values': { u'-webkit-activelink': u'The default color of a hyperlink that is being clicked.',611 u'-webkit-focus-ring-color': u'The color that surrounds a UI element, such as a text field, that has focus.',612 u'-webkit-link': u'The default color of a hyperlink that has been visited.',613 u'-webkit-text': u'The default text color.',614 u'activeborder': '',615 u'activecaption': '',616 u'appworkspace': '',617 u'aqua': '',618 u'background': '',619 u'black': '',620 u'blue': '',621 u'buttonface': '',622 u'buttonhighlight': '',623 u'buttonshadow': '',624 u'buttontext': '',625 u'captiontext': '',626 u'currentcolor': u'(by default) The value of the element\u2019s color property.',627 u'fuchsia': '',628 u'gray': '',629 u'graytext': '',630 u'green': '',631 u'grey': '',632 u'highlight': '',633 u'highlighttext': '',634 u'inactiveborder': '',635 u'inactivecaption': '',636 u'inactivecaptiontext': '',637 u'infobackground': '',638 u'infotext': '',639 u'lime': '',640 u'maroon': '',641 u'match': '',642 u'menu': '',643 u'menutext': '',644 u'navy': '',645 u'olive': '',646 u'orange': '',647 u'purple': '',648 u'red': '',649 u'scrollbar': '',650 u'silver': '',651 u'teal': '',652 u'threeddarkshadow': '',653 u'threedface': '',654 u'threedhighlight': '',655 u'threedlightshadow': '',656 u'threedshadow': '',657 u'transparent': '',658 u'white': '',659 u'window': '',660 u'windowframe': '',661 u'windowtext': '',662 u'yellow': ''},663 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},664 '-webkit-text-security':665{ 'description': u'Specifies the shape to use in place of letters in a password input field.',666 'syntax': u'-webkit-text-security: shape;',667 'values': { u'circle': u'A circle shape.',668 u'disc': u'A disc shape.',669 u'none': u'No shape is used.',670 u'square': u'A square shape.'},671 'versions': [u'Safari 3.0', u'iPhone OS 1.0']},672 '-webkit-text-size-adjust':673{ 'description': u'Specifies a size adjustment for displaying text content in Safari on iPhone.',674 'syntax': u'-webkit-text-size-adjust: percentage;',675 'values': { u'<percentage>': u'The size in percentage at which to display text in Safari on iPhone.',676 u'auto': u'The text size is automatically adjusted for Safari on iPhone.',677 u'none': u'(by default) The text size is not adjusted.'},678 'versions': [u'iPhone OS 1.0']},679 '-webkit-text-stroke':680{ 'description': u'Specifies the width and color of the outline (stroke) of text.',681 'syntax': u'-webkit-text-stroke: width color;',682 'values': { u'color': u'The color of the stroke.',683 u'width': u'The width of the stroke.'},684 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},685 '-webkit-text-stroke-color':686{ 'description': u'Specifies the color of the outline (stroke) of text.',687 'syntax': u'-webkit-text-stroke-color: color;',688 'values': { u'-webkit-activelink': u'The default color of a hyperlink that is being clicked.',689 u'-webkit-focus-ring-color': u'The color that surrounds a UI element, such as a text field, that has focus.',690 u'-webkit-link': u'The default color of a hyperlink that has been visited.',691 u'-webkit-text': u'The default text color.',692 u'activeborder': '',693 u'activecaption': '',694 u'appworkspace': '',695 u'aqua': '',696 u'background': '',697 u'black': '',698 u'blue': '',699 u'buttonface': '',700 u'buttonhighlight': '',701 u'buttonshadow': '',702 u'buttontext': '',703 u'captiontext': '',704 u'currentcolor': u"(by default) The value of the element's color property.",705 u'fuchsia': '',706 u'gray': '',707 u'graytext': '',708 u'green': '',709 u'grey': '',710 u'highlight': '',711 u'highlighttext': '',712 u'inactiveborder': '',713 u'inactivecaption': '',714 u'inactivecaptiontext': '',715 u'infobackground': '',716 u'infotext': '',717 u'lime': '',718 u'maroon': '',719 u'match': '',720 u'menu': '',721 u'menutext': '',722 u'navy': '',723 u'olive': '',724 u'orange': '',725 u'purple': '',726 u'red': '',727 u'scrollbar': '',728 u'silver': '',729 u'teal': '',730 u'threeddarkshadow': '',731 u'threedface': '',732 u'threedhighlight': '',733 u'threedlightshadow': '',734 u'threedshadow': '',735 u'transparent': '',736 u'white': '',737 u'window': '',738 u'windowframe': '',739 u'windowtext': '',740 u'yellow': ''},741 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},742 '-webkit-text-stroke-width':743{ 'description': u'Specifies the width for the text outline.',744 'syntax': u'-webkit-text-stroke-width: width;',745 'values': { u'<width>': u'Length unit',746 u'medium': u'A medium stroke.',747 u'thick': u'A thick stroke.',748 u'thin': u'A thin stroke.'},749 'versions': [u'Safari 3.0', u'iPhone OS 2.0']},750 '-webkit-touch-callout':751{ 'description': u'Disables the default callout shown when you touch and hold a touch target.',752 'syntax': u'-webkit-touch-callout: behavior;',753 'values': { u'inherit': '', u'none': ''},754 'versions': [u'iPhone OS 2.0']},755 '-webkit-transform':756{ 'description': u'Specifies transformations to be applied to an element.',757 'syntax': u'-webkit-transform: function ... ;',758 'values': { u'<function>': '',759 u'none': u'(by default) No transforms are applied.'},760 'versions': [u'Safari 3.1', u'iPhone OS 2.0']},761 '-webkit-transform-origin':762{ 'description': u'Sets the origin for the -webkit-transform property.',763 'syntax': u'-webkit-transform-origin: posx;',764 'values': { u'50%': u'50% (by default) ',765 u'bottom': '',766 u'center': '',767 u'left': '',768 u'right': '',769 u'top': ''},770 'versions': [u'Safari 3.1', u'iPhone OS 2.0']},771 '-webkit-transform-origin-x':772{ 'description': u'The x coordinate of the origin for transforms applied to an element with respect to its border box.',773 'syntax': u'-webkit-transform-origin-x: posx;',774 'values': { u'posx': u'The x origin as a percentage or value.'},775 'versions': [u'Safari 3.1', u'iPhone OS 2.0']},776 '-webkit-transform-origin-y':777{ 'description': u'The y coordinate of the origin for transforms applied to an element with respect to its border box.',778 'syntax': u'-webkit-transform-origin-y: posy;',779 'values': { u'posy': u'The y origin as a percentage or value.'},780 'versions': [u'Safari 3.1', u'iPhone OS 2.0']},781 '-webkit-transform-origin-z':782{ 'description': u'The z coordinate of the origin for transforms applied to an element with respect to its border box.',783 'syntax': u'-webkit-transform-origin-z: posz;',784 'values': { u'posz': u'The z origin as a percentage or value.'},785 'versions': [u'iPhone OS 2.0']},786 '-webkit-transform-style':787{ 'description': u'Defines how nested, transformed elements are rendered in 3D space.',788 'syntax': u'-webkit-transform-style: style;',789 'values': { u'flat': u'(by default) Flatten all children of this element into the 2D plane.',790 u'preserve-3d': u'Preserve the 3D perspective.'},791 'versions': [u'iPhone OS 2.0']},792 '-webkit-transition':793{ 'description': u'Combines -webkit-transition-delay , -webkit-transition-duration , -webkit-transition-property , and -webkit-transition-timing-function into a single property.',794 'syntax': u'-webkit-transition: property duration timing_function delay [, ...];',795 'values': { u'delay': u'Defines when the transition starts. See -webkit-transition-delay .',796 u'duration': u'Defines how long the transition from the old value to the new value should take. See -webkit-transition-duration .',797 u'property': u'Specifies the name of the CSS property to which the transition is applied. See -webkit-transition-property .',798 u'timing_function': u'Specifies how the intermediate values used during a transition are calculated. See -webkit-transition-timing-function .'},799 'versions': [u'Safari 3.1', u'iPhone OS 2.0']},800 '-webkit-transition-delay':801{ 'description': u'Defines when the transition starts.',802 'syntax': u'-webkit-transition-delay: time [, ...];',803 'values': { u'0': u'(by default) ',804 u'now': u'The transition begins immediately. Available in iPhone OS 2.0 and later.'},805 'versions': [u'Safari 4.0', u'iPhone OS 2.0']},806 '-webkit-transition-duration':807{ 'description': u'Defines how long the transition from the old value to the new value should take.',808 'syntax': u'-webkit-transition-duration: time [, ...];',809 'values': { u'0': u'(by default) '},810 'versions': [u'Safari 3.1', u'iPhone OS 2.0']},811 '-webkit-transition-property':812{ 'description': u'Specifies the name of the CSS property to which the transition is applied.',813 'syntax': u'-webkit-transition-property: name;',814 'values': { u'<name>': u'CSS property name',815 u'all': u'(by default) The default transition name.',816 u'none': u'No transition specified.'},817 'versions': [u'Safari 3.1', u'iPhone OS 2.0']},818 '-webkit-transition-timing-function':819{ 'description': u'Specifies how the intermediate values used during a transition are calculated.',820 'syntax': u'-webkit-transition-timing-function: timing_function [, ...];',821 'values': { u'<timing_function>': '',822 u'ease': u'(by default) Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0)',823 u'ease-in': u'Equivalent to cubic-bezier(0.42, 0, 1.0, 1.0)',824 u'ease-in-out': u'Equivalent to cubic-bezier(0.42, 0, 0.58, 1.0)',825 u'ease-out': u'Equivalent to cubic-bezier(0, 0, 0.58, 1.0)',826 u'linear': u'Equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0)'},827 'versions': [u'Safari 3.1', u'iPhone OS 2.0']},828 '-webkit-user-drag':829{ 'description': u'Specifies that an entire element should be draggable instead of its contents.',830 'syntax': u'-webkit-user-drag: behavior;',831 'values': { u'auto': u'(by default) The default dragging behavior is used.',832 u'element': u'The entire element is draggable instead of its contents.',833 u'none': u'The element cannot be dragged at all.'},834 'versions': [u'Safari 3.0']},835 '-webkit-user-modify':836{ 'description': u'Determines whether a user can edit the content of an element.',837 'syntax': u'-webkit-user-modify: policy;',838 'values': { u'read-only': u'The content is read-only.',839 u'read-write': u'The content can be read and written.',840 u'read-write-plaintext-only': u'The content can be read and written, but any rich formatting of pasted text is lost.'},841 'versions': [u'Safari 3.0']},842 '-webkit-user-select':843{ 'description': u'Determines whether a user can select the content of an element.',844 'syntax': u'-webkit-user-select: policy;',845 'values': { u'auto': u'(by default) The user can select content in the element.',846 u'none': u'The user cannot select any content.',847 u'text': u'The user can select text in the element.'},848 'versions': [u'Safari 3.0', u'iPhone OS 3.0']},849}850### END: Auto generated851CSS_WEBKIT_SPECIFIC_ATTRS_DICT = {}852CSS_WEBKIT_SPECIFIC_CALLTIP_DICT = {}853for attr, details in CSS_WEBKIT_DATA.items():854 values = details.get("values", {})855 versions = details.get("versions", [])856 attr_completions = sorted(values.keys())857 if attr_completions:858 CSS_WEBKIT_SPECIFIC_ATTRS_DICT[attr] = attr_completions859 else:860 CSS_WEBKIT_SPECIFIC_ATTRS_DICT[attr] = None861 description = details.get("description", '')862 if versions:863 description += "\nVersions: %s\n" % (", ".join(versions))864 if description:865 desc_lines = textwrap.wrap(description, width=60)866 if values:867 desc_lines.append("")868 for value, attr_desc in values.items():869 attr_desc = " %r: %s" % (value, attr_desc)870 attr_desc_lines = textwrap.wrap(attr_desc, width=50)871 for i in range(len(attr_desc_lines)):872 attr_line = attr_desc_lines[i]873 if i > 0:874 attr_line = " " + attr_line875 desc_lines.append(attr_line)...

Full Screen

Full Screen

bleach_whitelist.py

Source:bleach_whitelist.py Github

copy

Full Screen

1all_tags = "a abbr acronym address applet area article aside audio b base basefont bdi bdo bgsound big blink blockquote body br button canvas caption center cite code col colgroup command content data datalist dd del detals dfn dialog dir div dl dt element em embed fieldset figcaption figure font footer form frame frameset head header hgroup hr html i iframe image img input ins isindex kbd keygen label legend li link listing main map mark marquee menu menuitem meta meter multicol nav nobr noembed noframes noscript object ol optgroup option output p param picture plaintext pre progress q rp rt ruby s samp script section select shadow small source spacer span strike strong style sub summary sup table tbody td template textarea tfoot th thead time title tr track tt u ul var video wbr xmp h1 h2 h3 h4 h5 h6""".split()2# List tags that, if included in a page, could break markup or open XSS.3generally_xss_unsafe = "applet audio bgsound body canvas embed frame frameset head html iframe link meta object param source script ruby rt title track video xmp".split()4# Tags that, if included on the page, will probably not break markup or open5# XSS. Note that these must be combined with attribute whitelisting, or things6# like <img> and <style> could still be unsafe.7generally_xss_safe = list(set(all_tags) - set(generally_xss_unsafe))8generally_xss_safe.sort()9# Tags suitable for rendering markdown10markdown_tags = [11 "h1", "h2", "h3", "h4", "h5", "h6",12 "b", "i", "strong", "em", "tt",13 "p", "br",14 "span", "div", "blockquote", "code", "hr",15 "ul", "ol", "li", "dd", "dt",16 "img",17 "a",18]19markdown_attrs = {20 "img": ["src"],21 "a": ["href"],22}23# Tags suitable for preparing documents for printing.24print_tags = [25 "h1", "h2", "h3", "h4", "h5", "h6",26 "b", "i", "strong", "em", "tt",27 "p", "br",28 "span", "div", "blockquote", "code", "hr",29 "ul", "ol", "li", "dd", "dt",30 "table","thead","tbody","tfoot","tr","th","td",31 "img",32]33print_attrs = {34 "*": ["class", "style"],35 "img": ["src", "width", "height"],36}37standard_styles = [38 # Taken from https://developer.mozilla.org/en-US/docs/Web/CSS/Reference39 # This includes pseudo-classes, pseudo-elements, @-rules, units, and40 # selectors in addition to properties, but it doesn't matter for our41 # purposes -- we don't need to filter styles..42 ":active", "::after (:after)", "align-content", "align-items", "align-self",43 "all", "<angle>", "animation", "animation-delay", "animation-direction",44 "animation-duration", "animation-fill-mode", "animation-iteration-count",45 "animation-name", "animation-play-state", "animation-timing-function",46 "@annotation", "annotation()", "attr()", "::backdrop", "backface-visibility",47 "background", "background-attachment", "background-blend-mode",48 "background-clip", "background-color", "background-image", "background-origin",49 "background-position", "background-repeat", "background-size", "<basic-shape>",50 "::before (:before)", "<blend-mode>", "blur()", "border", "border-bottom",51 "border-bottom-color", "border-bottom-left-radius",52 "border-bottom-right-radius", "border-bottom-style", "border-bottom-width",53 "border-collapse", "border-color", "border-image", "border-image-outset",54 "border-image-repeat", "border-image-slice", "border-image-source",55 "border-image-width", "border-left", "border-left-color", "border-left-style",56 "border-left-width", "border-radius", "border-right", "border-right-color",57 "border-right-style", "border-right-width", "border-spacing", "border-style",58 "border-top", "border-top-color", "border-top-left-radius",59 "border-top-right-radius", "border-top-style", "border-top-width",60 "border-width", "bottom", "box-decoration-break", "box-shadow", "box-sizing",61 "break-after", "break-before", "break-inside", "brightness()", "calc()",62 "caption-side", "ch", "@character-variant", "character-variant()", "@charset",63 ":checked", "circle()", "clear", "clip", "clip-path", "cm", "color", "<color>",64 "columns", "column-count", "column-fill", "column-gap", "column-rule",65 "column-rule-color", "column-rule-style", "column-rule-width", "column-span",66 "column-width", "content", "contrast()", "<counter>", "counter-increment",67 "counter-reset", "@counter-style", "cubic-bezier()", "cursor",68 "<custom-ident>", ":default", "deg", ":dir()", "direction", ":disabled",69 "display", "@document", "dpcm", "dpi", "dppx", "drop-shadow()", "element()",70 "ellipse()", "em", ":empty", "empty-cells", ":enabled", "ex", "filter",71 ":first", ":first-child", "::first-letter", "::first-line",72 ":first-of-type", "flex", "flex-basis", "flex-direction",73 "flex-flow", "flex-grow", "flex-shrink", "flex-wrap", "float", ":focus",74 "font", "@font-face", "font-family", "font-feature-settings",75 "@font-feature-values", "font-kerning", "font-language-override", "font-size",76 "font-size-adjust", "font-stretch", "font-style", "font-synthesis",77 "font-variant", "font-variant-alternates", "font-variant-caps",78 "font-variant-east-asian", "font-variant-ligatures", "font-variant-numeric",79 "font-variant-position", "font-weight", "<frequency>", ":fullscreen", "grad",80 "<gradient>", "grayscale()", "grid", "grid-area", "grid-auto-columns",81 "grid-auto-flow", "grid-auto-position", "grid-auto-rows", "grid-column",82 "grid-column-start", "grid-column-end", "grid-row", "grid-row-start",83 "grid-row-end", "grid-template", "grid-template-areas", "grid-template-rows",84 "grid-template-columns", "height", ":hover", "hsl()", "hsla()", "hue-rotate()",85 "hyphens", "hz", "<image>", "image()", "image-rendering", "image-resolution",86 "image-orientation", "ime-mode", "@import", "in", ":indeterminate", "inherit",87 "initial", ":in-range", "inset()", "<integer>", ":invalid", "invert()",88 "isolation", "justify-content", "@keyframes", "khz", ":lang()", ":last-child",89 ":last-of-type", "left", ":left", "<length>", "letter-spacing",90 "linear-gradient()", "line-break", "line-height", ":link", "list-style",91 "list-style-image", "list-style-position", "list-style-type", "margin",92 "margin-bottom", "margin-left", "margin-right", "margin-top", "marks", "mask",93 "mask-type", "matrix()", "matrix3d()", "max-height", "max-width", "@media",94 "min-height", "minmax()", "min-width", "mix-blend-mode", "mm", "ms",95 "@namespace", ":not()", ":nth-child()", ":nth-last-child()",96 ":nth-last-of-type()", ":nth-of-type()", "<number>", "object-fit",97 "object-position", ":only-child", ":only-of-type", "opacity", "opacity()",98 ":optional", "order", "@ornaments", "ornaments()", "orphans", "outline",99 "outline-color", "outline-offset", "outline-style", "outline-width",100 ":out-of-range", "overflow", "overflow-wrap", "overflow-x", "overflow-y",101 "padding", "padding-bottom", "padding-left", "padding-right", "padding-top",102 "@page", "page-break-after", "page-break-before", "page-break-inside", "pc",103 "<percentage>", "perspective", "perspective()", "perspective-origin",104 "pointer-events", "polygon()", "position", "<position>", "pt", "px", "quotes",105 "rad", "radial-gradient()", "<ratio>", ":read-only", ":read-write", "rect()",106 "rem", "repeat()", "::repeat-index", "::repeat-item",107 "repeating-linear-gradient()", "repeating-radial-gradient()", ":required",108 "resize", "<resolution>", "rgb()", "rgba()", "right", ":right", ":root",109 "rotate()", "rotatex()", "rotatey()", "rotatez()", "rotate3d()", "ruby-align",110 "ruby-merge", "ruby-position", "s", "saturate()", "scale()", "scalex()",111 "scaley()", "scalez()", "scale3d()", ":scope", "scroll-behavior",112 "::selection", "sepia()", "<shape>", "shape-image-threshold", "shape-margin",113 "shape-outside", "skew()", "skewx()", "skewy()", "steps()", "<string>",114 "@styleset", "styleset()", "@stylistic", "stylistic()", "@supports", "@swash",115 "swash()", "symbol()", "table-layout", "tab-size", ":target", "text-align",116 "text-align-last", "text-combine-upright", "text-decoration",117 "text-decoration-color", "text-decoration-line", "text-decoration-style",118 "text-indent", "text-orientation", "text-overflow", "text-rendering",119 "text-shadow", "text-transform", "text-underline-position", "<time>",120 "<timing-function>", "top", "touch-action", "transform", "transform-origin",121 "transform-style", "transition", "transition-delay", "transition-duration",122 "transition-property", "transition-timing-function", "translate()",123 "translatex()", "translatey()", "translatez()", "translate3d()", "turn",124 "unicode-bidi", "unicode-range", "unset", "<uri>", "url()", "<user-ident>",125 ":valid", "::value", "var()", "vertical-align", "vh", "@viewport",126 "visibility", ":visited", "vmax", "vmin", "vw", "white-space", "widows",127 "width", "will-change", "word-break", "word-spacing", "word-wrap",128 "writing-mode", "z-index",129]130webkit_prefixed_styles = [131 # Webkit-prefixed styles132 # https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Webkit_Extensions133 "-webkit-animation", "-webkit-animation-delay", "-webkit-animation-direction",134 "-webkit-animation-duration", "-webkit-animation-fill-mode",135 "-webkit-animation-iteration-count", "-webkit-animation-name",136 "-webkit-animation-play-state", "-webkit-animation-timing-function",137 "-webkit-backface-visibility", "-webkit-border-image", "-webkit-column-count",138 "-webkit-column-gap", "-webkit-column-width", "-webkit-column-rule",139 "-webkit-column-rule-width", "-webkit-column-rule-style",140 "-webkit-column-rule-color", "-webkit-columns", "-webkit-column-span",141 "-webkit-font-feature-settings", "-webkit-font-kerning",142 "-webkit-font-size-delta", "-webkit-font-variant-ligatures",143 "-webkit-grid-column", "-webkit-grid-row", "-webkit-hyphens", "-webkit-mask",144 "-webkit-mask-clip", "-webkit-mask-composite", "-webkit-mask-image",145 "-webkit-mask-origin", "-webkit-mask-position", "-webkit-mask-repeat",146 "-webkit-mask-size", "-webkit-perspective", "-webkit-perspective-origin",147 "-webkit-region-fragment", "-webkit-shape-outside", "-webkit-text-emphasis",148 "-webkit-text-emphasis-color", "-webkit-text-emphasis-position",149 "-webkit-text-emphasis-style", "-webkit-transform", "-webkit-transform-origin",150 "-webkit-transform-style", "-webkit-transition", "-webkit-transition-delay",151 "-webkit-transition-duration", "-webkit-transition-property",152 "-webkit-transition-timing-function", "-epub-word-break", "-epub-writing-mode",153 # WebKit-prefixed properties with an unprefixed counterpart154 "-webkit-background-clip", "-webkit-background-origin",155 "-webkit-background-size", "-webkit-border-bottom-left-radius",156 "-webkit-border-bottom-right-radius", "-webkit-border-radius",157 "-webkit-border-top-left-radius", "-webkit-border-top-right-radius",158 "-webkit-box-sizing", "-epub-caption-side", "-webkit-opacity",159 "-epub-text-transform",160]161mozilla_prefixed_styles = [162 "-moz-column-count", "-moz-column-fill", "-moz-column-gap",163 "-moz-column-width", "-moz-column-rule", "-moz-column-rule-width",164 "-moz-column-rule-style", "-moz-column-rule-color",165 "-moz-font-feature-settings", "-moz-font-language-override", "-moz-hyphens",166 "-moz-text-align-last", "-moz-text-decoration-color",167 "-moz-text-decoration-line", "-moz-text-decoration-style",168]169all_prefixed_styles = [170 # From http://peter.sh/experiments/vendor-prefixed-css-property-overview/171 "-ms-accelerator", "-webkit-app-region", "-webkit-appearance",172 "-webkit-appearance", "-moz-appearance", "-webkit-aspect-ratio",173 "-webkit-backdrop-filter", "backface-visibility",174 "-webkit-backface-visibility", "backface-visibility", "backface-visibility",175 "-webkit-background-composite", "-webkit-background-composite", "-moz-binding",176 "-ms-block-progression", "-webkit-border-after", "-webkit-border-after",177 "-webkit-border-after-color", "-webkit-border-after-color",178 "-webkit-border-after-style", "-webkit-border-after-style",179 "-webkit-border-after-width", "-webkit-border-after-width",180 "-webkit-border-before", "-webkit-border-before",181 "-webkit-border-before-color", "-webkit-border-before-color",182 "-webkit-border-before-style", "-webkit-border-before-style",183 "-webkit-border-before-width", "-webkit-border-before-width",184 "-moz-border-bottom-colors", "-webkit-border-end", "-webkit-border-end",185 "-moz-border-end", "-webkit-border-end-color", "-webkit-border-end-color",186 "-moz-border-end-color", "-webkit-border-end-style",187 "-webkit-border-end-style", "-moz-border-end-style",188 "-webkit-border-end-width", "-webkit-border-end-width",189 "-moz-border-end-width", "-webkit-border-fit",190 "-webkit-border-horizontal-spacing", "-webkit-border-horizontal-spacing",191 "-moz-border-left-colors", "-moz-border-right-colors", "-webkit-border-start",192 "-webkit-border-start", "-moz-border-start", "-webkit-border-start-color",193 "-webkit-border-start-color", "-moz-border-start-color",194 "-webkit-border-start-style", "-webkit-border-start-style",195 "-moz-border-start-style", "-webkit-border-start-width",196 "-webkit-border-start-width", "-moz-border-start-width",197 "-moz-border-top-colors", "-webkit-border-vertical-spacing",198 "-webkit-border-vertical-spacing", "-webkit-box-align", "-webkit-box-align",199 "-moz-box-align", "-webkit-box-decoration-break",200 "-webkit-box-decoration-break", "box-decoration-break",201 "-webkit-box-direction", "-webkit-box-direction", "-moz-box-direction",202 "-webkit-box-flex", "-webkit-box-flex", "-moz-box-flex",203 "-webkit-box-flex-group", "-webkit-box-flex-group", "-webkit-box-lines",204 "-webkit-box-lines", "-webkit-box-ordinal-group", "-webkit-box-ordinal-group",205 "-moz-box-ordinal-group", "-webkit-box-orient", "-webkit-box-orient",206 "-moz-box-orient", "-webkit-box-pack", "-webkit-box-pack", "-moz-box-pack",207 "-webkit-box-reflect", "-webkit-box-reflect", "clip-path", "-webkit-clip-path",208 "clip-path", "clip-path", "-webkit-color-correction", "-webkit-column-axis",209 "-webkit-column-break-after", "-webkit-column-break-after",210 "-webkit-column-break-before", "-webkit-column-break-before",211 "-webkit-column-break-inside", "-webkit-column-break-inside",212 "-webkit-column-count", "column-count", "-moz-column-count", "column-count",213 "column-fill", "column-fill", "-moz-column-fill", "column-fill",214 "-webkit-column-gap", "column-gap", "-moz-column-gap", "column-gap",215 "-webkit-column-rule", "column-rule", "-moz-column-rule", "column-rule",216 "-webkit-column-rule-color", "column-rule-color", "-moz-column-rule-color",217 "column-rule-color", "-webkit-column-rule-style", "column-rule-style",218 "-moz-column-rule-style", "column-rule-style", "-webkit-column-rule-width",219 "column-rule-width", "-moz-column-rule-width", "column-rule-width",220 "-webkit-column-span", "column-span", "column-span", "-webkit-column-width",221 "column-width", "-moz-column-width", "column-width", "-webkit-columns",222 "columns", "-moz-columns", "columns", "-ms-content-zoom-chaining",223 "-ms-content-zoom-limit", "-ms-content-zoom-limit-max",224 "-ms-content-zoom-limit-min", "-ms-content-zoom-snap",225 "-ms-content-zoom-snap-points", "-ms-content-zoom-snap-type",226 "-ms-content-zooming", "-moz-control-character-visibility",227 "-webkit-cursor-visibility", "-webkit-dashboard-region", "filter",228 "-webkit-filter", "filter", "filter", "-ms-flex-align", "-ms-flex-item-align",229 "-ms-flex-line-pack", "-ms-flex-negative", "-ms-flex-order", "-ms-flex-pack",230 "-ms-flex-positive", "-ms-flex-preferred-size", "-moz-float-edge",231 "-webkit-flow-from", "-ms-flow-from", "-webkit-flow-into", "-ms-flow-into",232 "-webkit-font-feature-settings", "-webkit-font-feature-settings",233 "font-feature-settings", "font-feature-settings", "font-kerning",234 "-webkit-font-kerning", "font-kerning", "-webkit-font-size-delta",235 "-webkit-font-size-delta", "-webkit-font-smoothing", "-webkit-font-smoothing",236 "font-variant-ligatures", "-webkit-font-variant-ligatures",237 "font-variant-ligatures", "-moz-force-broken-image-icon", "grid",238 "-webkit-grid", "grid", "grid-area", "-webkit-grid-area", "grid-area",239 "grid-auto-columns", "-webkit-grid-auto-columns", "grid-auto-columns",240 "grid-auto-flow", "-webkit-grid-auto-flow", "grid-auto-flow", "grid-auto-rows",241 "-webkit-grid-auto-rows", "grid-auto-rows", "grid-column",242 "-webkit-grid-column", "grid-column", "-ms-grid-column",243 "-ms-grid-column-align", "grid-column-end", "-webkit-grid-column-end",244 "grid-column-end", "-ms-grid-column-span", "grid-column-start",245 "-webkit-grid-column-start", "grid-column-start", "-ms-grid-columns",246 "grid-row", "-webkit-grid-row", "grid-row", "-ms-grid-row",247 "-ms-grid-row-align", "grid-row-end", "-webkit-grid-row-end", "grid-row-end",248 "-ms-grid-row-span", "grid-row-start", "-webkit-grid-row-start",249 "grid-row-start", "-ms-grid-rows", "grid-template", "-webkit-grid-template",250 "grid-template", "grid-template-areas", "-webkit-grid-template-areas",251 "grid-template-areas", "grid-template-columns",252 "-webkit-grid-template-columns", "grid-template-columns", "grid-template-rows",253 "-webkit-grid-template-rows", "grid-template-rows", "-ms-high-contrast-adjust",254 "-webkit-highlight", "-webkit-hyphenate-character",255 "-webkit-hyphenate-character", "-webkit-hyphenate-limit-after",256 "-webkit-hyphenate-limit-before", "-ms-hyphenate-limit-chars",257 "-webkit-hyphenate-limit-lines", "-ms-hyphenate-limit-lines",258 "-ms-hyphenate-limit-zone", "-webkit-hyphens", "-moz-hyphens", "-ms-hyphens",259 "-moz-image-region", "-ms-ime-align", "-webkit-initial-letter",260 "-ms-interpolation-mode", "justify-self", "-webkit-justify-self",261 "-webkit-line-align", "-webkit-line-box-contain", "-webkit-line-box-contain",262 "-webkit-line-break", "-webkit-line-break", "line-break", "-webkit-line-clamp",263 "-webkit-line-clamp", "-webkit-line-grid", "-webkit-line-snap",264 "-webkit-locale", "-webkit-locale", "-webkit-logical-height",265 "-webkit-logical-height", "-webkit-logical-width", "-webkit-logical-width",266 "-webkit-margin-after", "-webkit-margin-after",267 "-webkit-margin-after-collapse", "-webkit-margin-after-collapse",268 "-webkit-margin-before", "-webkit-margin-before",269 "-webkit-margin-before-collapse", "-webkit-margin-before-collapse",270 "-webkit-margin-bottom-collapse", "-webkit-margin-bottom-collapse",271 "-webkit-margin-collapse", "-webkit-margin-collapse", "-webkit-margin-end",272 "-webkit-margin-end", "-moz-margin-end", "-webkit-margin-start",273 "-webkit-margin-start", "-moz-margin-start", "-webkit-margin-top-collapse",274 "-webkit-margin-top-collapse", "-webkit-marquee", "-webkit-marquee-direction",275 "-webkit-marquee-increment", "-webkit-marquee-repetition",276 "-webkit-marquee-speed", "-webkit-marquee-style", "mask", "-webkit-mask",277 "mask", "-webkit-mask-box-image", "-webkit-mask-box-image",278 "-webkit-mask-box-image-outset", "-webkit-mask-box-image-outset",279 "-webkit-mask-box-image-repeat", "-webkit-mask-box-image-repeat",280 "-webkit-mask-box-image-slice", "-webkit-mask-box-image-slice",281 "-webkit-mask-box-image-source", "-webkit-mask-box-image-source",282 "-webkit-mask-box-image-width", "-webkit-mask-box-image-width",283 "-webkit-mask-clip", "-webkit-mask-clip", "-webkit-mask-composite",284 "-webkit-mask-composite", "-webkit-mask-image", "-webkit-mask-image",285 "-webkit-mask-origin", "-webkit-mask-origin", "-webkit-mask-position",286 "-webkit-mask-position", "-webkit-mask-position-x", "-webkit-mask-position-x",287 "-webkit-mask-position-y", "-webkit-mask-position-y", "-webkit-mask-repeat",288 "-webkit-mask-repeat", "-webkit-mask-repeat-x", "-webkit-mask-repeat-x",289 "-webkit-mask-repeat-y", "-webkit-mask-repeat-y", "-webkit-mask-size",290 "-webkit-mask-size", "mask-source-type", "-webkit-mask-source-type",291 "-moz-math-display", "-moz-math-variant", "-webkit-max-logical-height",292 "-webkit-max-logical-height", "-webkit-max-logical-width",293 "-webkit-max-logical-width", "-webkit-min-logical-height",294 "-webkit-min-logical-height", "-webkit-min-logical-width",295 "-webkit-min-logical-width", "-webkit-nbsp-mode", "-moz-orient",296 "-moz-osx-font-smoothing", "-moz-outline-radius",297 "-moz-outline-radius-bottomleft", "-moz-outline-radius-bottomright",298 "-moz-outline-radius-topleft", "-moz-outline-radius-topright",299 "-webkit-overflow-scrolling", "-ms-overflow-style", "-webkit-padding-after",300 "-webkit-padding-after", "-webkit-padding-before", "-webkit-padding-before",301 "-webkit-padding-end", "-webkit-padding-end", "-moz-padding-end",302 "-webkit-padding-start", "-webkit-padding-start", "-moz-padding-start",303 "perspective", "-webkit-perspective", "perspective", "perspective",304 "perspective-origin", "-webkit-perspective-origin", "perspective-origin",305 "perspective-origin", "-webkit-perspective-origin-x",306 "-webkit-perspective-origin-x", "perspective-origin-x",307 "-webkit-perspective-origin-y", "-webkit-perspective-origin-y",308 "perspective-origin-y", "-webkit-print-color-adjust",309 "-webkit-print-color-adjust", "-webkit-region-break-after",310 "-webkit-region-break-before", "-webkit-region-break-inside",311 "-webkit-region-fragment", "-webkit-rtl-ordering", "-webkit-rtl-ordering",312 "-webkit-ruby-position", "-webkit-ruby-position", "ruby-position",313 "-moz-script-level", "-moz-script-min-size", "-moz-script-size-multiplier",314 "-ms-scroll-chaining", "-ms-scroll-limit", "-ms-scroll-limit-x-max",315 "-ms-scroll-limit-x-min", "-ms-scroll-limit-y-max", "-ms-scroll-limit-y-min",316 "-ms-scroll-rails", "-webkit-scroll-snap-coordinate",317 "-webkit-scroll-snap-destination", "-webkit-scroll-snap-points-x",318 "-ms-scroll-snap-points-x", "-webkit-scroll-snap-points-y",319 "-ms-scroll-snap-points-y", "-webkit-scroll-snap-type", "-ms-scroll-snap-type",320 "-ms-scroll-snap-x", "-ms-scroll-snap-y", "-ms-scroll-translation",321 "-ms-scrollbar-3dlight-color", "shape-image-threshold",322 "-webkit-shape-image-threshold", "shape-margin", "-webkit-shape-margin",323 "shape-outside", "-webkit-shape-outside", "-moz-stack-sizing", "tab-size",324 "tab-size", "-moz-tab-size", "-webkit-tap-highlight-color",325 "-webkit-tap-highlight-color", "text-align-last", "-webkit-text-align-last",326 "-moz-text-align-last", "text-align-last", "-webkit-text-combine",327 "-webkit-text-combine", "-ms-text-combine-horizontal", "text-decoration-color",328 "-webkit-text-decoration-color", "text-decoration-color",329 "text-decoration-color", "text-decoration-line",330 "-webkit-text-decoration-line", "text-decoration-line",331 "-webkit-text-decoration-skip", "text-decoration-style",332 "-webkit-text-decoration-style", "text-decoration-style",333 "-webkit-text-decorations-in-effect", "-webkit-text-decorations-in-effect",334 "-webkit-text-emphasis", "text-emphasis", "-webkit-text-emphasis-color",335 "text-emphasis-color", "-webkit-text-emphasis-position",336 "text-emphasis-position", "-webkit-text-emphasis-style", "text-emphasis-style",337 "-webkit-text-fill-color", "-webkit-text-fill-color", "text-justify",338 "-webkit-text-justify", "text-justify", "-webkit-text-orientation",339 "-webkit-text-orientation", "text-orientation", "-webkit-text-security",340 "-webkit-text-security", "-webkit-text-size-adjust", "-moz-text-size-adjust",341 "-ms-text-size-adjust", "-webkit-text-stroke", "-webkit-text-stroke",342 "-webkit-text-stroke-color", "-webkit-text-stroke-color",343 "-webkit-text-stroke-width", "-webkit-text-stroke-width",344 "text-underline-position", "-webkit-text-underline-position",345 "text-underline-position", "-webkit-touch-callout", "-ms-touch-select",346 "transform", "-webkit-transform", "transform", "transform", "transform-origin",347 "-webkit-transform-origin", "transform-origin", "transform-origin",348 "-webkit-transform-origin-x", "-webkit-transform-origin-x",349 "transform-origin-x", "-webkit-transform-origin-y",350 "-webkit-transform-origin-y", "transform-origin-y",351 "-webkit-transform-origin-z", "-webkit-transform-origin-z",352 "transform-origin-z", "transform-style", "-webkit-transform-style",353 "transform-style", "transform-style", "-webkit-user-drag", "-webkit-user-drag",354 "-moz-user-focus", "-moz-user-input", "-webkit-user-modify",355 "-webkit-user-modify", "-moz-user-modify", "-webkit-user-select",356 "-webkit-user-select", "-moz-user-select", "-ms-user-select",357 "-moz-window-dragging", "-moz-window-shadow", "-ms-wrap-flow",358 "-ms-wrap-margin", "-ms-wrap-through", "writing-mode", "-webkit-writing-mode",359 "writing-mode", "writing-mode",360]...

Full Screen

Full Screen

webkit.py

Source:webkit.py Github

copy

Full Screen

1# This file was created automatically by SWIG 1.3.29.2# Don't modify this file, modify the SWIG interface instead.34"""5wx.webkit.WebKitCtrl for Mac OSX.6"""78import _webkit9import new10new_instancemethod = new.instancemethod11def _swig_setattr_nondynamic(self,class_type,name,value,static=1):12 if (name == "thisown"): return self.this.own(value)13 if (name == "this"):14 if type(value).__name__ == 'PySwigObject':15 self.__dict__[name] = value16 return17 method = class_type.__swig_setmethods__.get(name,None)18 if method: return method(self,value)19 if (not static) or hasattr(self,name):20 self.__dict__[name] = value21 else:22 raise AttributeError("You cannot add attributes to %s" % self)2324def _swig_setattr(self,class_type,name,value):25 return _swig_setattr_nondynamic(self,class_type,name,value,0)2627def _swig_getattr(self,class_type,name):28 if (name == "thisown"): return self.this.own()29 method = class_type.__swig_getmethods__.get(name,None)30 if method: return method(self)31 raise AttributeError,name3233def _swig_repr(self):34 try: strthis = "proxy of " + self.this.__repr__()35 except: strthis = ""36 return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)3738import types39try:40 _object = types.ObjectType41 _newclass = 142except AttributeError:43 class _object : pass44 _newclass = 045del types464748def _swig_setattr_nondynamic_method(set):49 def set_attr(self,name,value):50 if (name == "thisown"): return self.this.own(value)51 if hasattr(self,name) or (name == "this"):52 set(self,name,value)53 else:54 raise AttributeError("You cannot add attributes to %s" % self)55 return set_attr565758import _core59wx = _core 60__docfilter__ = wx.__DocFilter(globals()) 61class WebKitCtrl(_core.Control):62 """Proxy of C++ WebKitCtrl class"""63 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')64 __repr__ = _swig_repr65 def __init__(self, *args, **kwargs): 66 """67 __init__(self, Window parent, int winID=-1, String strURL=EmptyString, 68 Point pos=DefaultPosition, Size size=DefaultSize, 69 long style=0, Validator validator=DefaultValidator, 70 String name=WebKitNameStr) -> WebKitCtrl71 """72 _webkit.WebKitCtrl_swiginit(self,_webkit.new_WebKitCtrl(*args, **kwargs))73 self._setOORInfo(self)7475 def Create(*args, **kwargs):76 """77 Create(self, Window parent, int winID=-1, String strURL=EmptyString, 78 Point pos=DefaultPosition, Size size=DefaultSize, 79 long style=0, Validator validator=DefaultValidator, 80 String name=WebKitNameStr) -> bool81 """82 return _webkit.WebKitCtrl_Create(*args, **kwargs)8384 def LoadURL(*args, **kwargs):85 """LoadURL(self, String url)"""86 return _webkit.WebKitCtrl_LoadURL(*args, **kwargs)8788 def CanGoBack(*args, **kwargs):89 """CanGoBack(self) -> bool"""90 return _webkit.WebKitCtrl_CanGoBack(*args, **kwargs)9192 def CanGoForward(*args, **kwargs):93 """CanGoForward(self) -> bool"""94 return _webkit.WebKitCtrl_CanGoForward(*args, **kwargs)9596 def GoBack(*args, **kwargs):97 """GoBack(self) -> bool"""98 return _webkit.WebKitCtrl_GoBack(*args, **kwargs)99100 def GoForward(*args, **kwargs):101 """GoForward(self) -> bool"""102 return _webkit.WebKitCtrl_GoForward(*args, **kwargs)103104 def Reload(*args, **kwargs):105 """Reload(self)"""106 return _webkit.WebKitCtrl_Reload(*args, **kwargs)107108 def Stop(*args, **kwargs):109 """Stop(self)"""110 return _webkit.WebKitCtrl_Stop(*args, **kwargs)111112 def CanGetPageSource(*args, **kwargs):113 """CanGetPageSource(self) -> bool"""114 return _webkit.WebKitCtrl_CanGetPageSource(*args, **kwargs)115116 def GetPageSource(*args, **kwargs):117 """GetPageSource(self) -> String"""118 return _webkit.WebKitCtrl_GetPageSource(*args, **kwargs)119120 def SetPageSource(*args, **kwargs):121 """SetPageSource(self, String source, String baseUrl=EmptyString)"""122 return _webkit.WebKitCtrl_SetPageSource(*args, **kwargs)123124 def GetPageURL(*args, **kwargs):125 """GetPageURL(self) -> String"""126 return _webkit.WebKitCtrl_GetPageURL(*args, **kwargs)127128 def GetPageTitle(*args, **kwargs):129 """GetPageTitle(self) -> String"""130 return _webkit.WebKitCtrl_GetPageTitle(*args, **kwargs)131132 def GetSelection(*args, **kwargs):133 """GetSelection(self) -> String"""134 return _webkit.WebKitCtrl_GetSelection(*args, **kwargs)135136 def CanIncreaseTextSize(*args, **kwargs):137 """CanIncreaseTextSize(self) -> bool"""138 return _webkit.WebKitCtrl_CanIncreaseTextSize(*args, **kwargs)139140 def IncreaseTextSize(*args, **kwargs):141 """IncreaseTextSize(self)"""142 return _webkit.WebKitCtrl_IncreaseTextSize(*args, **kwargs)143144 def CanDecreaseTextSize(*args, **kwargs):145 """CanDecreaseTextSize(self) -> bool"""146 return _webkit.WebKitCtrl_CanDecreaseTextSize(*args, **kwargs)147148 def DecreaseTextSize(*args, **kwargs):149 """DecreaseTextSize(self)"""150 return _webkit.WebKitCtrl_DecreaseTextSize(*args, **kwargs)151152 def Print(*args, **kwargs):153 """Print(self, bool showPrompt=False)"""154 return _webkit.WebKitCtrl_Print(*args, **kwargs)155156 def MakeEditable(*args, **kwargs):157 """MakeEditable(self, bool enable=True)"""158 return _webkit.WebKitCtrl_MakeEditable(*args, **kwargs)159160 def IsEditable(*args, **kwargs):161 """IsEditable(self) -> bool"""162 return _webkit.WebKitCtrl_IsEditable(*args, **kwargs)163164 def RunScript(*args, **kwargs):165 """RunScript(self, String javascript) -> String"""166 return _webkit.WebKitCtrl_RunScript(*args, **kwargs)167168 PageSource = property(GetPageSource,SetPageSource,doc="See `GetPageSource` and `SetPageSource`") 169 PageTitle = property(GetPageTitle,doc="See `GetPageTitle`") 170 PageURL = property(GetPageURL,doc="See `GetPageURL`") 171 Selection = property(GetSelection,doc="See `GetSelection`") 172_webkit.WebKitCtrl_swigregister(WebKitCtrl)173cvar = _webkit.cvar174WebKitNameStr = cvar.WebKitNameStr175176def PreWebKitCtrl(*args, **kwargs):177 """PreWebKitCtrl() -> WebKitCtrl"""178 val = _webkit.new_PreWebKitCtrl(*args, **kwargs)179 return val180181WEBKIT_STATE_START = _webkit.WEBKIT_STATE_START182WEBKIT_STATE_NEGOTIATING = _webkit.WEBKIT_STATE_NEGOTIATING183WEBKIT_STATE_REDIRECTING = _webkit.WEBKIT_STATE_REDIRECTING184WEBKIT_STATE_TRANSFERRING = _webkit.WEBKIT_STATE_TRANSFERRING185WEBKIT_STATE_STOP = _webkit.WEBKIT_STATE_STOP186WEBKIT_STATE_FAILED = _webkit.WEBKIT_STATE_FAILED187WEBKIT_NAV_LINK_CLICKED = _webkit.WEBKIT_NAV_LINK_CLICKED188WEBKIT_NAV_BACK_NEXT = _webkit.WEBKIT_NAV_BACK_NEXT189WEBKIT_NAV_FORM_SUBMITTED = _webkit.WEBKIT_NAV_FORM_SUBMITTED190WEBKIT_NAV_RELOAD = _webkit.WEBKIT_NAV_RELOAD191WEBKIT_NAV_FORM_RESUBMITTED = _webkit.WEBKIT_NAV_FORM_RESUBMITTED192WEBKIT_NAV_OTHER = _webkit.WEBKIT_NAV_OTHER193wxEVT_WEBKIT_STATE_CHANGED = _webkit.wxEVT_WEBKIT_STATE_CHANGED194wxEVT_WEBKIT_BEFORE_LOAD = _webkit.wxEVT_WEBKIT_BEFORE_LOAD195wxEVT_WEBKIT_NEW_WINDOW = _webkit.wxEVT_WEBKIT_NEW_WINDOW196class WebKitBeforeLoadEvent(_core.CommandEvent):197 """Proxy of C++ WebKitBeforeLoadEvent class"""198 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')199 __repr__ = _swig_repr200 def IsCancelled(*args, **kwargs):201 """IsCancelled(self) -> bool"""202 return _webkit.WebKitBeforeLoadEvent_IsCancelled(*args, **kwargs)203204 def Cancel(*args, **kwargs):205 """Cancel(self, bool cancel=True)"""206 return _webkit.WebKitBeforeLoadEvent_Cancel(*args, **kwargs)207208 def GetURL(*args, **kwargs):209 """GetURL(self) -> String"""210 return _webkit.WebKitBeforeLoadEvent_GetURL(*args, **kwargs)211212 def SetURL(*args, **kwargs):213 """SetURL(self, String url)"""214 return _webkit.WebKitBeforeLoadEvent_SetURL(*args, **kwargs)215216 def SetNavigationType(*args, **kwargs):217 """SetNavigationType(self, int navType)"""218 return _webkit.WebKitBeforeLoadEvent_SetNavigationType(*args, **kwargs)219220 def GetNavigationType(*args, **kwargs):221 """GetNavigationType(self) -> int"""222 return _webkit.WebKitBeforeLoadEvent_GetNavigationType(*args, **kwargs)223224 def __init__(self, *args, **kwargs): 225 """__init__(self, Window win=(wxWindow *) NULL) -> WebKitBeforeLoadEvent"""226 _webkit.WebKitBeforeLoadEvent_swiginit(self,_webkit.new_WebKitBeforeLoadEvent(*args, **kwargs))227 NavigationType = property(GetNavigationType,SetNavigationType,doc="See `GetNavigationType` and `SetNavigationType`") 228 URL = property(GetURL,SetURL,doc="See `GetURL` and `SetURL`") 229_webkit.WebKitBeforeLoadEvent_swigregister(WebKitBeforeLoadEvent)230231class WebKitStateChangedEvent(_core.CommandEvent):232 """Proxy of C++ WebKitStateChangedEvent class"""233 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')234 __repr__ = _swig_repr235 def __init__(self, *args, **kwargs): 236 """__init__(self, Window win=None) -> WebKitStateChangedEvent"""237 _webkit.WebKitStateChangedEvent_swiginit(self,_webkit.new_WebKitStateChangedEvent(*args, **kwargs))238 def GetState(*args, **kwargs):239 """GetState(self) -> int"""240 return _webkit.WebKitStateChangedEvent_GetState(*args, **kwargs)241242 def SetState(*args, **kwargs):243 """SetState(self, int state)"""244 return _webkit.WebKitStateChangedEvent_SetState(*args, **kwargs)245246 def GetURL(*args, **kwargs):247 """GetURL(self) -> String"""248 return _webkit.WebKitStateChangedEvent_GetURL(*args, **kwargs)249250 def SetURL(*args, **kwargs):251 """SetURL(self, String url)"""252 return _webkit.WebKitStateChangedEvent_SetURL(*args, **kwargs)253254 State = property(GetState,SetState,doc="See `GetState` and `SetState`") 255 URL = property(GetURL,SetURL,doc="See `GetURL` and `SetURL`") 256_webkit.WebKitStateChangedEvent_swigregister(WebKitStateChangedEvent)257258class WebKitNewWindowEvent(_core.CommandEvent):259 """Proxy of C++ WebKitNewWindowEvent class"""260 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')261 __repr__ = _swig_repr262 def GetURL(*args, **kwargs):263 """GetURL(self) -> String"""264 return _webkit.WebKitNewWindowEvent_GetURL(*args, **kwargs)265266 def SetURL(*args, **kwargs):267 """SetURL(self, String url)"""268 return _webkit.WebKitNewWindowEvent_SetURL(*args, **kwargs)269270 def GetTargetName(*args, **kwargs):271 """GetTargetName(self) -> String"""272 return _webkit.WebKitNewWindowEvent_GetTargetName(*args, **kwargs)273274 def SetTargetName(*args, **kwargs):275 """SetTargetName(self, String name)"""276 return _webkit.WebKitNewWindowEvent_SetTargetName(*args, **kwargs)277278 def __init__(self, *args, **kwargs): 279 """__init__(self, Window win=None) -> WebKitNewWindowEvent"""280 _webkit.WebKitNewWindowEvent_swiginit(self,_webkit.new_WebKitNewWindowEvent(*args, **kwargs))281 URL = property(GetURL,SetURL,doc="See `GetURL` and `SetURL`") 282 TargetName = property(GetTargetName,SetTargetName) 283_webkit.WebKitNewWindowEvent_swigregister(WebKitNewWindowEvent)284285EVT_WEBKIT_STATE_CHANGED = wx.PyEventBinder(wxEVT_WEBKIT_STATE_CHANGED)286EVT_WEBKIT_BEFORE_LOAD = wx.PyEventBinder(wxEVT_WEBKIT_BEFORE_LOAD)287EVT_WEBKIT_NEW_WINDOW = wx.PyEventBinder(wxEVT_WEBKIT_NEW_WINDOW)288289 ...

Full Screen

Full Screen

include_tracer.py

Source:include_tracer.py Github

copy

Full Screen

1#!/usr/bin/python2# Copyright (c) 2011 The Chromium Authors. All rights reserved.3# Use of this source code is governed by a BSD-style license that can be4# found in the LICENSE file.5# based on an almost identical script by: jyrki@google.com (Jyrki Alakuijala)6#7# This script prints out include dependencies in chrome. Since it ignores8# defines, it gives just a rough estimation of file size.9#10# Usage:11# python tools/include_tracer.py chrome/browser/ui/browser.h12import os13import sys14# Created by copying the command line for prerender_browsertest.cc, replacing15# spaces with newlines, and dropping everything except -F and -I switches.16# TODO(port): Add windows, linux directories.17INCLUDE_PATHS = [18 '',19 'gpu',20 'skia/config',21 'skia/ext',22 'testing/gmock/include',23 'testing/gtest/include',24 'third_party/GTM',25 'third_party/WebKit/Source',26 'third_party/WebKit/Source/JavaScriptCore',27 'third_party/WebKit/Source/JavaScriptCore/wtf',28 'third_party/WebKit/Source/ThirdParty/glu',29 'third_party/WebKit/Source/WebCore',30 'third_party/WebKit/Source/WebCore/accessibility',31 'third_party/WebKit/Source/WebCore/accessibility/chromium',32 'third_party/WebKit/Source/WebCore/bindings',33 'third_party/WebKit/Source/WebCore/bindings/generic',34 'third_party/WebKit/Source/WebCore/bindings/v8',35 'third_party/WebKit/Source/WebCore/bindings/v8/custom',36 'third_party/WebKit/Source/WebCore/bindings/v8/specialization',37 'third_party/WebKit/Source/WebCore/bridge',38 'third_party/WebKit/Source/WebCore/bridge/jni',39 'third_party/WebKit/Source/WebCore/bridge/jni/v8',40 'third_party/WebKit/Source/WebCore/css',41 'third_party/WebKit/Source/WebCore/dom',42 'third_party/WebKit/Source/WebCore/dom/default',43 'third_party/WebKit/Source/WebCore/editing',44 'third_party/WebKit/Source/WebCore/fileapi',45 'third_party/WebKit/Source/WebCore/history',46 'third_party/WebKit/Source/WebCore/html',47 'third_party/WebKit/Source/WebCore/html/canvas',48 'third_party/WebKit/Source/WebCore/html/parser',49 'third_party/WebKit/Source/WebCore/html/shadow',50 'third_party/WebKit/Source/WebCore/inspector',51 'third_party/WebKit/Source/WebCore/loader',52 'third_party/WebKit/Source/WebCore/loader/appcache',53 'third_party/WebKit/Source/WebCore/loader/archive',54 'third_party/WebKit/Source/WebCore/loader/cache',55 'third_party/WebKit/Source/WebCore/loader/icon',56 'third_party/WebKit/Source/WebCore/mathml',57 'third_party/WebKit/Source/WebCore/notifications',58 'third_party/WebKit/Source/WebCore/page',59 'third_party/WebKit/Source/WebCore/page/animation',60 'third_party/WebKit/Source/WebCore/page/chromium',61 'third_party/WebKit/Source/WebCore/platform',62 'third_party/WebKit/Source/WebCore/platform/animation',63 'third_party/WebKit/Source/WebCore/platform/audio',64 'third_party/WebKit/Source/WebCore/platform/audio/chromium',65 'third_party/WebKit/Source/WebCore/platform/audio/mac',66 'third_party/WebKit/Source/WebCore/platform/chromium',67 'third_party/WebKit/Source/WebCore/platform/cocoa',68 'third_party/WebKit/Source/WebCore/platform/graphics',69 'third_party/WebKit/Source/WebCore/platform/graphics/cg',70 'third_party/WebKit/Source/WebCore/platform/graphics/chromium',71 'third_party/WebKit/Source/WebCore/platform/graphics/cocoa',72 'third_party/WebKit/Source/WebCore/platform/graphics/filters',73 'third_party/WebKit/Source/WebCore/platform/graphics/gpu',74 'third_party/WebKit/Source/WebCore/platform/graphics/mac',75 'third_party/WebKit/Source/WebCore/platform/graphics/opentype',76 'third_party/WebKit/Source/WebCore/platform/graphics/skia',77 'third_party/WebKit/Source/WebCore/platform/graphics/transforms',78 'third_party/WebKit/Source/WebCore/platform/image-decoders',79 'third_party/WebKit/Source/WebCore/platform/image-decoders/bmp',80 'third_party/WebKit/Source/WebCore/platform/image-decoders/gif',81 'third_party/WebKit/Source/WebCore/platform/image-decoders/ico',82 'third_party/WebKit/Source/WebCore/platform/image-decoders/jpeg',83 'third_party/WebKit/Source/WebCore/platform/image-decoders/png',84 'third_party/WebKit/Source/WebCore/platform/image-decoders/skia',85 'third_party/WebKit/Source/WebCore/platform/image-decoders/webp',86 'third_party/WebKit/Source/WebCore/platform/image-decoders/xbm',87 'third_party/WebKit/Source/WebCore/platform/image-encoders/skia',88 'third_party/WebKit/Source/WebCore/platform/mac',89 'third_party/WebKit/Source/WebCore/platform/mock',90 'third_party/WebKit/Source/WebCore/platform/network',91 'third_party/WebKit/Source/WebCore/platform/network/chromium',92 'third_party/WebKit/Source/WebCore/platform/sql',93 'third_party/WebKit/Source/WebCore/platform/text',94 'third_party/WebKit/Source/WebCore/platform/text/mac',95 'third_party/WebKit/Source/WebCore/platform/text/transcoder',96 'third_party/WebKit/Source/WebCore/plugins',97 'third_party/WebKit/Source/WebCore/plugins/chromium',98 'third_party/WebKit/Source/WebCore/rendering',99 'third_party/WebKit/Source/WebCore/rendering/style',100 'third_party/WebKit/Source/WebCore/rendering/svg',101 'third_party/WebKit/Source/WebCore/storage',102 'third_party/WebKit/Source/WebCore/storage/chromium',103 'third_party/WebKit/Source/WebCore/svg',104 'third_party/WebKit/Source/WebCore/svg/animation',105 'third_party/WebKit/Source/WebCore/svg/graphics',106 'third_party/WebKit/Source/WebCore/svg/graphics/filters',107 'third_party/WebKit/Source/WebCore/svg/properties',108 'third_party/WebKit/Source/WebCore/webaudio',109 'third_party/WebKit/Source/WebCore/websockets',110 'third_party/WebKit/Source/WebCore/workers',111 'third_party/WebKit/Source/WebCore/xml',112 'third_party/WebKit/Source/WebKit/chromium/public',113 'third_party/WebKit/Source/WebKit/chromium/src',114 'third_party/WebKit/Source/WebKit/mac/WebCoreSupport',115 'third_party/WebKit/WebKitLibraries',116 'third_party/cld',117 'third_party/icu/public/common',118 'third_party/icu/public/i18n',119 'third_party/npapi',120 'third_party/npapi/bindings',121 'third_party/protobuf',122 'third_party/protobuf/src',123 'third_party/skia/gpu/include',124 'third_party/skia/include/config',125 'third_party/skia/include/core',126 'third_party/skia/include/effects',127 'third_party/skia/include/gpu',128 'third_party/skia/include/pdf',129 'third_party/skia/include/ports',130 'v8/include',131 'xcodebuild/Debug/include',132 'xcodebuild/DerivedSources/Debug/chrome',133 'xcodebuild/DerivedSources/Debug/policy',134 'xcodebuild/DerivedSources/Debug/protoc_out',135 'xcodebuild/DerivedSources/Debug/webkit',136 'xcodebuild/DerivedSources/Debug/webkit/bindings',137]138def Walk(seen, filename, parent, indent):139 """Returns the size of |filename| plus the size of all files included by140 |filename| and prints the include tree of |filename| to stdout. Every file141 is visited at most once.142 """143 total_bytes = 0144 # .proto(devel) filename translation145 if filename.endswith('.pb.h'):146 basename = filename[:-5]147 if os.path.exists(basename + '.proto'):148 filename = basename + '.proto'149 else:150 print 'could not find ', filename151 # Show and count files only once.152 if filename in seen:153 return total_bytes154 seen.add(filename)155 # Display the paths.156 print ' ' * indent + filename157 # Skip system includes.158 if filename[0] == '<':159 return total_bytes160 # Find file in all include paths.161 resolved_filename = filename162 for root in INCLUDE_PATHS + [os.path.dirname(parent)]:163 if os.path.exists(os.path.join(root, filename)):164 resolved_filename = os.path.join(root, filename)165 break166 # Recurse.167 if os.path.exists(resolved_filename):168 lines = open(resolved_filename).readlines()169 else:170 print ' ' * (indent + 2) + "-- not found"171 lines = []172 for line in lines:173 line = line.strip()174 if line.startswith('#include "'):175 total_bytes += Walk(176 seen, line.split('"')[1], resolved_filename, indent + 2)177 elif line.startswith('#include '):178 include = '<' + line.split('<')[1].split('>')[0] + '>'179 total_bytes += Walk(180 seen, include, resolved_filename, indent + 2)181 elif line.startswith('import '):182 total_bytes += Walk(183 seen, line.split('"')[1], resolved_filename, indent + 2)184 return total_bytes + len("".join(lines))185bytes = Walk(set(), sys.argv[1], '', 0)186print...

Full Screen

Full Screen

Playwright tutorial

LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.

Chapters:

  1. What is Playwright : Playwright is comparatively new but has gained good popularity. Get to know some history of the Playwright with some interesting facts connected with it.
  2. How To Install Playwright : Learn in detail about what basic configuration and dependencies are required for installing Playwright and run a test. Get a step-by-step direction for installing the Playwright automation framework.
  3. Playwright Futuristic Features: Launched in 2020, Playwright gained huge popularity quickly because of some obliging features such as Playwright Test Generator and Inspector, Playwright Reporter, Playwright auto-waiting mechanism and etc. Read up on those features to master Playwright testing.
  4. What is Component Testing: Component testing in Playwright is a unique feature that allows a tester to test a single component of a web application without integrating them with other elements. Learn how to perform Component testing on the Playwright automation framework.
  5. Inputs And Buttons In Playwright: Every website has Input boxes and buttons; learn about testing inputs and buttons with different scenarios and examples.
  6. Functions and Selectors in Playwright: Learn how to launch the Chromium browser with Playwright. Also, gain a better understanding of some important functions like “BrowserContext,” which allows you to run multiple browser sessions, and “newPage” which interacts with a page.
  7. Handling Alerts and Dropdowns in Playwright : Playwright interact with different types of alerts and pop-ups, such as simple, confirmation, and prompt, and different types of dropdowns, such as single selector and multi-selector get your hands-on with handling alerts and dropdown in Playright testing.
  8. Playwright vs Puppeteer: Get to know about the difference between two testing frameworks and how they are different than one another, which browsers they support, and what features they provide.
  9. Run Playwright Tests on LambdaTest: Playwright testing with LambdaTest leverages test performance to the utmost. You can run multiple Playwright tests in Parallel with the LammbdaTest test cloud. Get a step-by-step guide to run your Playwright test on the LambdaTest platform.
  10. Playwright Python Tutorial: Playwright automation framework support all major languages such as Python, JavaScript, TypeScript, .NET and etc. However, there are various advantages to Python end-to-end testing with Playwright because of its versatile utility. Get the hang of Playwright python testing with this chapter.
  11. Playwright End To End Testing Tutorial: Get your hands on with Playwright end-to-end testing and learn to use some exciting features such as TraceViewer, Debugging, Networking, Component testing, Visual testing, and many more.
  12. Playwright Video Tutorial: Watch the video tutorials on Playwright testing from experts and get a consecutive in-depth explanation of Playwright automation testing.

Run Playwright Python automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful