mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
style: Replace plugin behavior with a basic fallback
The browser currently only enables plugin behavior for Flash and our internal test plugins. This patch replaces support for those plugins with a simple fallback that shows a transparent region where the plugin would have been. It removes the file system search(es) for the plugin dynamic libraries and short-circuits the logic to determine if plugins should do something special -- all implementations now behave the same in the presence of plugin elements. The new behavior is: 1. If the <object> or <embed> element lists a type of something other than "x-shockwave-flash" or "x-test" then the behavior is unchanged. This means that non-plugin types behave properly and unknown types (for example, typos) are also unaffected (they reduce to 0x0 elements). 2. If the <object> element has an HTML fallback in the DOM (see spec for <object> elements) then the fallback is always shown. 3. Otherwise, the element is shown as a transparent region with the size specified in attributes. Differential Revision: https://phabricator.services.mozilla.com/D95902
This commit is contained in:
parent
1e815ab3c3
commit
178e627500
3 changed files with 5 additions and 0 deletions
|
@ -144,6 +144,8 @@ bitflags! {
|
||||||
const IN_MOZINERT_STATE = 1 << 54;
|
const IN_MOZINERT_STATE = 1 << 54;
|
||||||
/// State for the topmost dialog element in top layer
|
/// State for the topmost dialog element in top layer
|
||||||
const IN_TOPMOST_MODAL_DIALOG_STATE = 1 << 55;
|
const IN_TOPMOST_MODAL_DIALOG_STATE = 1 << 55;
|
||||||
|
/// Non-standard & undocumented.
|
||||||
|
const IN_HANDLER_NOPLUGINS = 1 << 56;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -72,6 +72,8 @@ macro_rules! apply_non_ts_list {
|
||||||
("-moz-handler-disabled", MozHandlerDisabled, IN_HANDLER_DISABLED_STATE, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME),
|
("-moz-handler-disabled", MozHandlerDisabled, IN_HANDLER_DISABLED_STATE, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME),
|
||||||
("-moz-handler-blocked", MozHandlerBlocked, IN_HANDLER_BLOCKED_STATE, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME),
|
("-moz-handler-blocked", MozHandlerBlocked, IN_HANDLER_BLOCKED_STATE, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME),
|
||||||
("-moz-handler-crashed", MozHandlerCrashed, IN_HANDLER_CRASHED_STATE, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME),
|
("-moz-handler-crashed", MozHandlerCrashed, IN_HANDLER_CRASHED_STATE, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME),
|
||||||
|
("-moz-handler-noplugins", MozHandlerNoPlugins, IN_HANDLER_NOPLUGINS, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME),
|
||||||
|
|
||||||
("-moz-math-increment-script-level", MozMathIncrementScriptLevel, IN_INCREMENT_SCRIPT_LEVEL_STATE, _),
|
("-moz-math-increment-script-level", MozMathIncrementScriptLevel, IN_INCREMENT_SCRIPT_LEVEL_STATE, _),
|
||||||
|
|
||||||
("required", Required, IN_REQUIRED_STATE, _),
|
("required", Required, IN_REQUIRED_STATE, _),
|
||||||
|
|
|
@ -2046,6 +2046,7 @@ impl<'le> ::selectors::Element for GeckoElement<'le> {
|
||||||
NonTSPseudoClass::MozHandlerClickToPlay |
|
NonTSPseudoClass::MozHandlerClickToPlay |
|
||||||
NonTSPseudoClass::MozHandlerVulnerableUpdatable |
|
NonTSPseudoClass::MozHandlerVulnerableUpdatable |
|
||||||
NonTSPseudoClass::MozHandlerVulnerableNoUpdate |
|
NonTSPseudoClass::MozHandlerVulnerableNoUpdate |
|
||||||
|
NonTSPseudoClass::MozHandlerNoPlugins |
|
||||||
NonTSPseudoClass::MozMathIncrementScriptLevel |
|
NonTSPseudoClass::MozMathIncrementScriptLevel |
|
||||||
NonTSPseudoClass::InRange |
|
NonTSPseudoClass::InRange |
|
||||||
NonTSPseudoClass::OutOfRange |
|
NonTSPseudoClass::OutOfRange |
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue