Compare commits

..

1 Commits

Author SHA1 Message Date
Philipp Crocoll
acf55b1f85 trying to reproduce autospill, without success so far (refers to #2478) 2024-01-02 12:44:47 +01:00
9 changed files with 69 additions and 14 deletions

View File

@@ -185,7 +185,7 @@ namespace KeePassLib.Serialization
byte[] pbFile = StrUtil.Utf8.GetBytes(sb.ToString());
s = IOConnection.OpenWrite(iocLockFile);
if(s == null) throw new IOException(UrlUtil.GetFileName(iocLockFile.Path));
if(s == null) throw new IOException(iocLockFile.GetDisplayName());
s.Write(pbFile, 0, pbFile.Length);
}
finally { if(s != null) s.Close(); }
@@ -205,7 +205,8 @@ namespace KeePassLib.Serialization
if(lfiEx != null)
{
m_iocLockFile = null; // Otherwise Dispose deletes the existing one
throw new FileLockException(UrlUtil.GetFileName(iocBaseFile.Path), lfiEx.GetOwner());
throw new FileLockException(iocBaseFile.GetDisplayName(),
lfiEx.GetOwner());
}
LockFileInfo.Create(m_iocLockFile);

View File

@@ -28,7 +28,6 @@ using System.Diagnostics;
using KeePassLib.Resources;
using KeePassLib.Serialization;
using Android.Webkit;
namespace KeePassLib.Utility
{
@@ -412,7 +411,7 @@ Clipboard.SetText(ObjectsToMessage(vLines, true));*/
public static void ShowLoadWarning(IOConnectionInfo ioConnection, Exception ex)
{
if (ioConnection != null)
ShowLoadWarning(UrlUtil.GetFileName(ioConnection.Path), ex, false);
ShowLoadWarning(ioConnection.GetDisplayName(), ex, false);
else ShowWarning(ex);
}
@@ -445,7 +444,7 @@ Clipboard.SetText(ObjectsToMessage(vLines, true));*/
bool bCorruptionWarning)
{
if (ioConnection != null)
ShowSaveWarning(UrlUtil.GetFileName(ioConnection.Path), ex, bCorruptionWarning);
ShowSaveWarning(ioConnection.GetDisplayName(), ex, bCorruptionWarning);
else ShowWarning(ex);
}

View File

@@ -72,6 +72,13 @@ namespace Kp2aAutofillParserTest
RunTestFromAutofillInput(resourceName, "com.expressvpn.vpn", null);
}
[Fact]
public void HandlesAutospillGracefully()
{
var resourceName = "Kp2aAutofillParserTest.autospill.json";
RunTestFromAutofillInput(resourceName, "com.vivaldi.browser", "m.facebook.com");
}
private void RunTestFromAutofillInput(string resourceName, string expectedPackageName = null, string expectedWebDomain = null)
{
var assembly = Assembly.GetExecutingAssembly();

View File

@@ -9,6 +9,7 @@
</PropertyGroup>
<ItemGroup>
<None Remove="autospill.json" />
<None Remove="chrome-android10-amazon-it.json" />
<None Remove="com-expressvpn-vpn-android13.json" />
<None Remove="com-ifs-banking-fiid3364-android13.json" />
@@ -54,6 +55,9 @@
<EmbeddedResource Include="com-servicenet-mobile-no-focus.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="autospill.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="imdb.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>

View File

@@ -0,0 +1,48 @@
{
"InputFields": [
{
"IdEntry": "native_username",
"ClassName": "android.widget.EditText",
"AutofillHints": null,
"IsFocused": false,
"InputType": 1,
"HtmlInfoTag": null,
"HtmlInfoTypeAttribute": null,
"ExpectedAssignedHints": ["username"]
},
{
"IdEntry": "native_password",
"ClassName": "android.widget.EditText",
"AutofillHints": null,
"IsFocused": false,
"InputType": 129,
"HtmlInfoTag": null,
"HtmlInfoTypeAttribute": null,
"ExpectedAssignedHints": []
},
{
"IdEntry": "webview_email",
"ClassName": "android.widget.EditText",
"AutofillHints": [ "email" ],
"IsFocused": true,
"InputType": 0,
"HtmlInfoTag": null,
"HtmlInfoTypeAttribute": null,
"ExpectedAssignedHints": [ "emailAddress" ]
},
{
"IdEntry": "webview_password",
"ClassName": "android.widget.EditText",
"AutofillHints": [
"password"
],
"IsFocused": false,
"InputType": 0,
"HtmlInfoTag": null,
"HtmlInfoTypeAttribute": null,
"ExpectedAssignedHints": [ "password" ]
}
],
"PackageId": "com.vivaldi.browser",
"WebDomain": "m.facebook.com"
}

View File

@@ -124,7 +124,7 @@ namespace keepass2android.Io
&& File.Exists(VersionFilePath(ioc))
&& File.Exists(BaseVersionFilePath(ioc));
Kp2aLog.Log(GetDisplayName(ioc) + " isCached = " + result);
Kp2aLog.Log(ioc.GetDisplayName() + " isCached = " + result);
return result;
}
@@ -598,14 +598,13 @@ namespace keepass2android.Io
public string GetBaseVersionHash(IOConnectionInfo ioc)
{
string hash = File.ReadAllText(BaseVersionFilePath(ioc));
Kp2aLog.Log(GetDisplayName(ioc) + " baseVersionHash = " + hash);
Kp2aLog.Log(ioc.GetDisplayName() + " baseVersionHash = " + hash);
return hash;
}
public string GetLocalVersionHash(IOConnectionInfo ioc)
{
string hash = File.ReadAllText(VersionFilePath(ioc));
Kp2aLog.Log(GetDisplayName(ioc) + " localVersionHash = " + hash);
Kp2aLog.Log(ioc.GetDisplayName() + " localVersionHash = " + hash);
return hash;
}
public bool HasLocalChanges(IOConnectionInfo ioc)

View File

@@ -348,7 +348,7 @@ namespace keepass2android.Io
}
catch (Exception e)
{
throw new Exception("Error finding " + filename + " in " + GetDisplayName(folderPath), e);
throw new Exception("Error finding " + filename + " in " + folderPath.GetDisplayName(), e);
}
}

View File

@@ -68,8 +68,5 @@
<ItemGroup>
<None Include="Resources\AboutResources.txt" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\values\Strings.xml" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />
</Project>

View File

@@ -129,7 +129,7 @@ namespace OtpKeyProv
if(!OtpInfo.Save(auxFileIoc, otpInfo))
{
MessageService.ShowWarning("Failed to save auxiliary OTP info file:",
UrlUtil.GetFileName(auxFileIoc.Path));
auxFileIoc.GetDisplayName());
return false;
}