Change Details

Content::getNativeData() should be removed because it misguides calling code into making baseless assumptions about the return value, which cannot be used with confidence. This includes core and WMF-maintained extensions.
There is no good reason for Content::getNativeData() to exist, since it guarantees nothing about the structure or format of the content. The only sensible use cases are for textual content. For that use case, a more narrow method getText should be created in TextContent. Other code using getNativeData is conceptually flawed by definition, since the return value cannot be used confidently. Structured content models, like EntityContent in the Wikibase extension, should (and typically do) define their own specialized getter methods for the internal structure.
Below is the list of WMF maintained extensions that need to be updated.
[] AbuseFilter
[x] Babel
[] CentralNotice
[] CollaborationKit
[] Collection
[] ConfirmEdit
[x] Echo
[] EventLogging
[] Flow
[] Gadgets
[] GlobalCssJs
[] GWToolset
[] JADE
[] JsonConfig
[] LiquidThreads
[] MassMessage
[] Math
[] OpenStackManager
[] ProofreadPage
[] RSS
[] Scribunto
[] TemplateData
[] TemplateStyles
[] Translate
[] UploadWizard
[] Wikibase
[] ZeroPortal

Content::getNativeData() should be removed because it misguides calling code into making baseless assumptions about the return value, which cannot be used with confidence. This includes core and WMF-maintained extensions.
There is no good reason for Content::getNativeData() to exist, since it guarantees nothing about the structure or format of the content. The only sensible use cases are for textual content. For that use case, a more narrow method getText should be created in TextContent. Other code using getNativeData is conceptually flawed by definition, since the return value cannot be used confidently. Structured content models, like EntityContent in the Wikibase extension, should (and typically do) define their own specialized getter methods for the internal structure.
Below is the list of WMF maintained extensions that need to be updated.
[x] AbuseFilter
[x] Babel
[] CentralNotice
[] CollaborationKit
[] Collection
[] ConfirmEdit
[x] Echo
[] EventLogging
[] Flow
[] Gadgets
[] GlobalCssJs
[] GWToolset
[] JADE
[] JsonConfig
[] LiquidThreads
[] MassMessage
[] Math
[] OpenStackManager
[] ProofreadPage
[] RSS
[] Scribunto
[] TemplateData
[] TemplateStyles
[] Translate
[] UploadWizard
[] Wikibase
[] ZeroPortal

Content::getNativeData() should be removed because it misguides calling code into making baseless assumptions about the return value, which cannot be used with confidence. This includes core and WMF-maintained extensions.
There is no good reason for Content::getNativeData() to exist, since it guarantees nothing about the structure or format of the content. The only sensible use cases are for textual content. For that use case, a more narrow method getText should be created in TextContent. Other code using getNativeData is conceptually flawed by definition, since the return value cannot be used confidently. Structured content models, like EntityContent in the Wikibase extension, should (and typically do) define their own specialized getter methods for the internal structure.
Below is the list of WMF maintained extensions that need to be updated.
[x] AbuseFilter
[x] Babel
[] CentralNotice
[] CollaborationKit
[] Collection
[] ConfirmEdit
[x] Echo
[] EventLogging
[] Flow
[] Gadgets
[] GlobalCssJs
[] GWToolset
[] JADE
[] JsonConfig
[] LiquidThreads
[] MassMessage
[] Math
[] OpenStackManager
[] ProofreadPage
[] RSS
[] Scribunto
[] TemplateData
[] TemplateStyles
[] Translate
[] UploadWizard
[] Wikibase
[] ZeroPortal