Object security

From Warcraft Wiki
Jump to navigation Jump to search

Object security traits are protections employed by user interface objects to restrict actions that can be taken by insecure code, such as addons.

Protected regions

Introduced in Patch 2.0.1, protected regions disallow the modification of secure execution attributes, positioning information, sizing, and visibility of regions during combat from insecure code.

Forbidden objects

Introduced in Patch 5.4.0, forbidden objects disallow insecure code from calling almost all methods on objects under all circumstances.

Anchor restricted regions

Introduced in Patch 8.2.0, anchor restricted regions disallow the querying of positional information of regions from insecure code, and the creation of anchors that would result in a region being positioned relative to two distinct anchor families simultaneously.

Inaccessible objects

Introduced in Patch 10.1.0, inaccessible objects are entities for which a reference cannot be obtained through any object methods, and whose named identity may be obscured.

  • Inaccessible regions are used by the Private Auras UI.
  • At present there is no dedicated method through which a region can be tested for inaccessibility.
  • The Object:GetDebugName() method will always return a string of the form "$parent.inaccessible", with ".inaccessible" being repeated for each inaccessible and unnamed parent object in the object tree.
  • The Object:GetParentKey() method will always return nil.
  • The Frame:GetChildren() and Frame:GetRegions() methods will never return inaccessible child objects even if the caller is secure.

Patch changes