forked from mirrors/gecko-dev
		
	Without this change, we could do a "short" get of a string (e.g. from XMLHttpRequest), then do another get that returns the same stringbuffer but a longer length. But we wouldn't notice, hit our cache, and return the same, too-short, external string. The site would not see the new data it should have seen.
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 | 
						|
/* This Source Code Form is subject to the terms of the Mozilla Public
 | 
						|
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 | 
						|
 * You can obtain one at http://mozilla.org/MPL/2.0/.
 | 
						|
 */
 | 
						|
 | 
						|
// A dumping ground for random testing functions
 | 
						|
 | 
						|
callback PromiseReturner = Promise<any>();
 | 
						|
 | 
						|
[Pref="dom.expose_test_interfaces",
 | 
						|
 Constructor]
 | 
						|
interface TestFunctions {
 | 
						|
  [Throws]
 | 
						|
  static void throwUncatchableException();
 | 
						|
 | 
						|
  // Simply returns its argument.  Can be used to test Promise
 | 
						|
  // argument processing behavior.
 | 
						|
  static Promise<any> passThroughPromise(Promise<any> arg);
 | 
						|
 | 
						|
  // Returns whatever Promise the given PromiseReturner returned.
 | 
						|
  [Throws]
 | 
						|
  static Promise<any> passThroughCallbackPromise(PromiseReturner callback);
 | 
						|
 | 
						|
  // Some basic tests for string binding round-tripping behavior.
 | 
						|
  void setStringData(DOMString arg);
 | 
						|
 | 
						|
  // Get the string data, using an nsAString argument on the C++ side.
 | 
						|
  // This will just use Assign/operator=, whatever that does.
 | 
						|
  DOMString getStringDataAsAString();
 | 
						|
 | 
						|
  // Get the string data, but only "length" chars of it, using an
 | 
						|
  // nsAString argument on the C++ side.  This will always copy on the
 | 
						|
  // C++ side.
 | 
						|
  DOMString getStringDataAsAString(unsigned long length);
 | 
						|
 | 
						|
  // Get the string data, but only "length" chars of it, using a
 | 
						|
  // DOMString argument on the C++ side and trying to hand it
 | 
						|
  // stringbuffers.  If length not passed, use our full length.
 | 
						|
  DOMString getStringDataAsDOMString(optional unsigned long length);
 | 
						|
};
 |