Skip to content

Commit

Permalink
avm2: Add several AIR classes and version-gate ImageDecodingPolicy
Browse files Browse the repository at this point in the history
…to SWF13+

`NativeProcess`, `NativeProcessStartupInfo`, and `File` classes
  • Loading branch information
Lord-McSweeney authored and torokati44 committed Jul 14, 2024
1 parent 2a38a2c commit bed5a2f
Show file tree
Hide file tree
Showing 5 changed files with 114 additions and 10 deletions.
20 changes: 20 additions & 0 deletions core/src/avm2/globals/flash/desktop/NativeProcess.as
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package flash.desktop {
import __ruffle__.stub_method;

import flash.events.EventDispatcher;

[API("668")]
public class NativeProcess extends EventDispatcher {
public function NativeProcess() {
super();
}

public static function get isSupported():Boolean {
return false;
}

public function start(info:NativeProcessStartupInfo):void {
stub_method("flash.desktop.NativeProcess", "start");
}
}
}
43 changes: 43 additions & 0 deletions core/src/avm2/globals/flash/desktop/NativeProcessStartupInfo.as
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package flash.desktop {
import __ruffle__.stub_getter;
import __ruffle__.stub_setter;

import flash.filesystem.File;

[API("668")]
public class NativeProcessStartupInfo {
public function NativeProcessStartupInfo() {
super();
}

public function get arguments():Vector.<String> {
stub_getter("flash.desktop.NativeProcessStartupInfo", "arguments");

return null;
}

public function set arguments(value:Vector.<String>):void {
stub_setter("flash.desktop.NativeProcessStartupInfo", "arguments");
}

public function get executable():File {
stub_getter("flash.desktop.NativeProcessStartupInfo", "executable");

return null;
}

public function set executable(value:File):void {
stub_setter("flash.desktop.NativeProcessStartupInfo", "executable");
}

public function get workingDirectory():File {
stub_getter("flash.desktop.NativeProcessStartupInfo", "workingDirectory");

return null;
}

public function set workingDirectory(value:File):void {
stub_setter("flash.desktop.NativeProcessStartupInfo", "workingDirectory");
}
}
}
36 changes: 36 additions & 0 deletions core/src/avm2/globals/flash/filesystem/File.as
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package flash.filesystem {
import __ruffle__.stub_constructor;
import __ruffle__.stub_getter;
import __ruffle__.stub_method;

import flash.net.FileReference;

[API("661")]
public class File extends FileReference {
private static var _applicationDirectory:File = null;

public function File(path:String = null) {
stub_constructor("flash.filesystem.File");
}

public static function get applicationDirectory():File {
if (_applicationDirectory === null) {
_applicationDirectory = new File();
}

return _applicationDirectory;
}

public function resolvePath(path:String):File {
stub_method("flash.filesystem.File", "resolvePath");

return new File();
}

public function get exists():Boolean {
stub_getter("flash.filesystem.File", "exists");

return false;
}
}
}
9 changes: 5 additions & 4 deletions core/src/avm2/globals/flash/system/ImageDecodingPolicy.as
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package flash.system {
public final class ImageDecodingPolicy {
public static const ON_DEMAND:String = "onDemand";
public static const ON_LOAD:String = "onLoad";
}
[API("674")]
public final class ImageDecodingPolicy {
public static const ON_DEMAND:String = "onDemand";
public static const ON_LOAD:String = "onLoad";
}
}
16 changes: 10 additions & 6 deletions core/src/avm2/globals/globals.as
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ include "flash/accessibility/AccessibilityProperties.as"
include "flash/accessibility/ISearchableText.as"
include "flash/accessibility/ISimpleTextSelection.as"

include "flash/concurrent/Condition.as"
include "flash/concurrent/Mutex.as"

include "flash/crypto.as"

include "flash/utils/IDataInput.as"
Expand All @@ -37,16 +40,15 @@ include "flash/utils/IExternalizable.as"
include "flash/utils/ByteArray.as"
include "flash/utils/Dictionary.as"

include "flash/events/IEventDispatcher.as"
include "flash/events/EventDispatcher.as"

include "flash/desktop/ClipboardFormats.as"
include "flash/desktop/ClipboardTransferMode.as"
include "flash/desktop/Clipboard.as"
include "flash/desktop/IFilePromise.as"

include "flash/events/IEventDispatcher.as"
include "flash/events/EventDispatcher.as"

include "flash/concurrent/Condition.as"
include "flash/concurrent/Mutex.as"
include "flash/desktop/NativeProcess.as"
include "flash/desktop/NativeProcessStartupInfo.as"

include "flash/display/IBitmapDrawable.as"
include "flash/display/DisplayObject.as"
Expand Down Expand Up @@ -301,6 +303,8 @@ include "flash/net/URLStream.as"
include "flash/net/URLVariables.as"
include "flash/net/XMLSocket.as"

include "flash/filesystem/File.as" // File extends FileReference

include "flash/net/drm/AuthenticationMethod.as"
include "flash/net/drm/LoadVoucherSetting.as"

Expand Down

0 comments on commit bed5a2f

Please sign in to comment.