summaryrefslogtreecommitdiff
path: root/includes/api/ApiFormatPhp.php
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2015-02-25 23:38:25 -0500
committerLuke Shumaker <lukeshu@sbcglobal.net>2015-02-25 23:38:25 -0500
commitb0e5922cdadff2b394100dc8977bc2d526c04595 (patch)
treef1c19b1aaf0988cdef72f978b9f16c5d631d3727 /includes/api/ApiFormatPhp.php
parentad2b9dc3e492af9d550532817f34f865a97a8f63 (diff)
parentb88ab0086858470dd1f644e64cb4e4f62bb2be9b (diff)
Merge commit 'b88ab'
Diffstat (limited to 'includes/api/ApiFormatPhp.php')
-rw-r--r--includes/api/ApiFormatPhp.php19
1 files changed, 18 insertions, 1 deletions
diff --git a/includes/api/ApiFormatPhp.php b/includes/api/ApiFormatPhp.php
index b2d1f044..bda1c180 100644
--- a/includes/api/ApiFormatPhp.php
+++ b/includes/api/ApiFormatPhp.php
@@ -35,7 +35,24 @@ class ApiFormatPhp extends ApiFormatBase {
}
public function execute() {
- $this->printText( serialize( $this->getResultData() ) );
+ global $wgMangleFlashPolicy;
+ $text = serialize( $this->getResultData() );
+
+ // Bug 66776: wfMangleFlashPolicy() is needed to avoid a nasty bug in
+ // Flash, but what it does isn't friendly for the API. There's nothing
+ // we can do here that isn't actively broken in some manner, so let's
+ // just be broken in a useful manner.
+ if ( $wgMangleFlashPolicy &&
+ in_array( 'wfOutputHandler', ob_list_handlers(), true ) &&
+ preg_match( '/\<\s*cross-domain-policy\s*\>/i', $text )
+ ) {
+ $this->dieUsage(
+ 'This response cannot be represented using format=php. See https://bugzilla.wikimedia.org/show_bug.cgi?id=66776',
+ 'internalerror'
+ );
+ }
+
+ $this->printText( $text );
}
public function getDescription() {