Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
marcelklehr committed May 18, 2024
2 parents 86e81e0 + f3302c6 commit f84f263
Show file tree
Hide file tree
Showing 36 changed files with 610 additions and 341 deletions.
8 changes: 0 additions & 8 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ jobs:
floccus-adapter:
- fake
- nextcloud-bookmarks
- nextcloud-bookmarks-old
- webdav-xbel
- webdav-html
- webdav-html-encrypted
Expand Down Expand Up @@ -122,13 +121,6 @@ jobs:
browsers: firefox
node-version: 14.x
npm-version: 7.x
- app-version: master
server-version: 28
floccus-adapter: nextcloud-bookmarks-old
test-name: benchmark root
browsers: firefox
node-version: 14.x
npm-version: 7.x
- app-version: stable
server-version: 28
floccus-adapter: fake-noCache
Expand Down
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,32 @@
# Changelog

## [5.1.3] - 2024-05-18

### Fixed

[native] fix: set largeHeap to true on android + fix git settings
fix: Improve locking logic
fix(NextcloudBookmarks#getExistingBookmarks): Don't use search-by-url for javascript links
fix: Make Diff#inspect() output more readable
fix: Limit concurrency for reorderings
fix: Improve bulkImport performance by chunking
fix: Unhandled error "Receiving end does not exist"

## [5.1.2] - 2024-05-14

### Fixed
* fix(GoogleDrive): Catch 500 errors
* [native] fix: Reload tree on app resume
* fix(NextcloudBookmarks): Remove feature detection of 5yo features
* [native] fix(intent): Register intent activity properly
* feat(NextcloudBookmarks): Accept javascript: links
* fix(webpack): Don't set DEBUG to true in production
* fix(BrowserController#setStatusBadge): Don't throw when setting icon
* fix(Account#progressCallback): Don't error if syncProcess is not defined yet
* fix: Don't error in old Chrome versions if browser.permissions.contains fails
* fix: Wrap local tree fetch error
* fix(webpack): Split initial chunks to avoid AMO review complaining

## [5.1.1] - 2024-05-10

### Fixed
Expand Down
8 changes: 7 additions & 1 deletion _locales/en/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,12 @@
"Error036": {
"message": "E036: Missing permissions to access the sync server"
},
"Error037": {
"message": "E036: Resource is locked"
},
"Error038": {
"message": "E036: Could not find local folder"
},
"LabelWebdavurl": {
"message": "WebDAV URL"
},
Expand Down Expand Up @@ -264,7 +270,7 @@
"message": "Nextcloud Bookmarks"
},
"DescriptionAdapternextcloudfolders": {
"message": "The option 'Nextcloud Bookmarks' syncs your bookmarks with the Bookmarks app for Nextcloud. It can only sync http and ftp bookmarks. Make sure you have installed the Bookmarks app from the Nextcloud app store in your Nextcloud."
"message": "The option 'Nextcloud Bookmarks' syncs your bookmarks with the Bookmarks app for Nextcloud. It can only sync http, ftp and javascript bookmarks. Make sure you have installed the Bookmarks app from the Nextcloud app store in your Nextcloud."
},
"LabelAdapternextcloud": {
"message": "Nextcloud Bookmarks (legacy)"
Expand Down
37 changes: 35 additions & 2 deletions _locales/gl/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,12 @@
"Error036": {
"message": "E036: Faltan permisos para acceder ao servidor de sincronización"
},
"Error037": {
"message": "E036: O recurso está bloqueado"
},
"Error038": {
"message": "E036: Non foi posíbel atopar o cartafol local"
},
"LabelWebdavurl": {
"message": "URL de WebDAV"
},
Expand All @@ -126,11 +132,14 @@
"message": "Ruta do ficheiro de marcadores"
},
"DescriptionBookmarksfile": {
"message": "unha ruta ao ficheiro de marcadores relativo ao URL de WebDAV (xa deben existir todos os cartafoles da ruta). p. ex. cousas_persoais/bookmarks.xbel"
"message": "unha ruta ao ficheiro de marcadores relativa ao URL de WebDAV (xa deben existir todos os cartafoles da ruta). p. ex. cousas_persoais/bookmarks.xbel"
},
"DescriptionBookmarksfilegoogle": {
"message": "o nome do ficheiro de marcadores que residirá no seu Google Drive (asegúrese de que este nome é único no seu Drive)"
},
"DescriptionBookmarksfilegit": {
"message": "unha ruta ao ficheiro de marcadores relativa á raíz do repositorio de Git (xa deben existir todos os cartafoles da ruta). p. ex. cousas_persoais/bookmarks.xbel"
},
"LabelServerfolder": {
"message": "Servidor de destino"
},
Expand Down Expand Up @@ -261,7 +270,7 @@
"message": "Marcadores de Nextcloud"
},
"DescriptionAdapternextcloudfolders": {
"message": "A opción «Marcadores de Nextcloud» sincroniza os marcadores coa aplicación Marcadores de Nextcloud. Só pode sincronizar os marcadores http e ftp. Asegúrese de ter instalado a aplicación Marcadores da tenda de aplicacións de Nextcloud na súa instancia de Nextcloud."
"message": "A opción «Marcadores de Nextcloud» sincroniza os marcadores coa aplicación Marcadores de Nextcloud. Só pode sincronizar os marcadores http, ftp e javascript. Asegúrese de ter instalada a aplicación Marcadores da tenda de aplicacións de Nextcloud na súa instancia de Nextcloud."
},
"LabelAdapternextcloud": {
"message": "Marcadores de Nextcloud (herdados)"
Expand Down Expand Up @@ -689,5 +698,29 @@
},
"DescriptionSyncscheduled": {
"message": "Este perfil sincronizarase en breve. Estamos a agardar que outros dispositivos seus ou outros perfís deste dispositivo rematen de sincronizar."
},
"LabelAdaptergit": {
"message": "Git sobre HTTPS"
},
"DescriptionAdaptergit": {
"message": "A opción Git sincroniza os seus marcadores almacenándoos nun ficheiro no repositorio de Git fornecido. Non hai unha interface de usuario web para esta opción, mais pode usala con calquera servidor de aloxamento de Git, como Github, Gitlab, Gitea, etc. Pode sincronizar os marcadores http, ftp, datos, ficheiros e javascript."
},
"LabelGiturl": {
"message": "URL do repositorio usando HTTP"
},
"LabelGitbranch": {
"message": "Póla de Git"
},
"LabelTelemetry": {
"message": "Informe automatizado de erros"
},
"DescriptionTelemetry": {
"message": "Floccus pode enviarme automaticamente os datos de erros a min, o desenvolvedor. Esta é unha gran axuda para descubrir e resolver os erros en floccus máis rápido e axudará a mellorar a súa experiencia con floccus a longo prazo. Aínda que estea activado o informe de erros, os desenvolvedores de floccus nunca poderán ver os seus marcadores."
},
"LabelTelemetryenable": {
"message": "Envíiar automaticamente os datos de erros aos desenvolvedores de floccus"
},
"LabelTelemetrydisable": {
"message": "Non enviar os datos de erros aos desenvolvedores de floccus"
}
}
57 changes: 51 additions & 6 deletions _locales/ja/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@
"message": "E025: ブックマークファイルの設定は、スラッシュ: '/' で始まってはいけません"
},
"Error026": {
"message": "E026: HTTP ステータス {0}。ブックマークのフェッチに失敗しました"
"message": "E026: 同期プロセスがキャンセルされました"
},
"Error027": {
"message": "E027: 同期のプロセスが中断されました"
Expand Down Expand Up @@ -107,6 +107,12 @@
"Error036": {
"message": "E036: サーバーと同期する権限がありません"
},
"Error037": {
"message": "E036: リソースがロックされています"
},
"Error038": {
"message": "E036: ローカルフォルダーを見つけられません"
},
"LabelWebdavurl": {
"message": "WebDAV URL"
},
Expand All @@ -126,11 +132,14 @@
"message": "ブックマークファイルのパス"
},
"DescriptionBookmarksfile": {
"message": "WebDAV URL からのブックマークファイルの相対パス (パスのすべてのフォルダーがすでに存在していなければなりません) 例: personal_stuff/bookmarks.xbel"
"message": "WebDAV URL からのブックマークファイルの相対パス (パスのすべてのフォルダーが先に存在していなければなりません) 例: personal_stuff/bookmarks.xbel"
},
"DescriptionBookmarksfilegoogle": {
"message": "Googleドライブに保存するブックマークファイルの名前 (ドライブ内でファイル名が重複していないことを確認してください)"
},
"DescriptionBookmarksfilegit": {
"message": "Git リポジトリーのルートからのブックマークファイルの相対パス (パスのすべてのフォルダーが先に存在していなければなりません) 例: personal_stuff/bookmarks.xbel"
},
"LabelServerfolder": {
"message": "サーバーの対象"
},
Expand Down Expand Up @@ -216,7 +225,7 @@
"message": "キャッシュをリセット"
},
"DescriptionResetcache": {
"message": "選択すると、キャッシュがリセットされ、次の同期実行でデータが削除されず、サーバーとローカルのブックマークがマージされるだけになります。"
"message": "選択するとキャッシュがリセットされ、次の同期実行でデータが削除されず、サーバーとローカルのブックマークがマージされるだけになります。"
},
"LabelParallelsync": {
"message": "同期の高速化"
Expand Down Expand Up @@ -261,7 +270,7 @@
"message": "Nextcloud Bookmarks"
},
"DescriptionAdapternextcloudfolders": {
"message": "「Nextcloud Bookmarks」のオプションは Nextclound のブックマークアプリとブックマークを同期します。httpftp のブックマークのみ同期できます。お使いの Nextcloud でブックマークアプリを Nextcloud アプリストアからインストールしていることを確認してください。"
"message": "「Nextcloud Bookmarks」のオプションは Nextclound のブックマークアプリとブックマークを同期します。httpftp、JavaScript のブックマークのみ同期できます。お使いの Nextcloud でブックマークアプリを Nextcloud アプリストアからインストールしていることを確認してください。"
},
"LabelAdapternextcloud": {
"message": "Nextcloud Bookmarks (レガシー)"
Expand Down Expand Up @@ -351,6 +360,18 @@
"DescriptionGithubsponsors": {
"message": "GitHub sponsors で定期的に寄付をしてプロジェクトを支援する"
},
"LabelPatreon": {
"message": "Patreon"
},
"DescriptionPatreon": {
"message": "Patreon で定期的に寄付してプロジェクトを支援する"
},
"LabelKofi": {
"message": "Kofi"
},
"DescriptionKofi": {
"message": "Ko-fi で 1 回限りまたは定期的な寄付をしてプロジェクトを支援する"
},
"LegacyAdapterDeprecation": {
"message": "このレガシープロファイルタイプは非推奨になり、間もなく削除されます。新しい Nextcloud の同期方法に変更してください。改善されたパフォーマンスと精度でななたをお待ちしています。"
},
Expand Down Expand Up @@ -508,7 +529,7 @@
"message": "クライアント認証情報を送信する"
},
"DescriptionClientcert": {
"message": "サーバーが認証にクライアント証明書または Cookie を要求する場合は、このオプションを有効にしてください。floccus は通常のブラウザーのプロファイルと Cookie を共有するため、予期せぬ副作用を引き起こす場合があります。"
"message": "サーバーが認証にクライアント証明書または Cookie を要求する場合は、このオプションを有効にしてください。floccus は通常のブラウザーセッションと Cookie を共有するため、予期せぬ副作用を引き起こす場合があります。"
},
"LabelAllowredirects": {
"message": "サーバー URL のリダイレクトを許可する"
Expand Down Expand Up @@ -673,9 +694,33 @@
"message": "正常にプロファイルをインポートしました"
},
"DescriptionSyncinprogress": {
"message": "進行中の同期"
"message": "同期が進行中"
},
"DescriptionSyncscheduled": {
"message": "このプロファイルはまもなく同期されます。他のデバイスまたはこのデバイス上の他のプロファイルの同期が完了するのを待っています。"
},
"LabelAdaptergit": {
"message": "Git over HTTPS"
},
"DescriptionAdaptergit": {
"message": "Git オプションは、提供された Git リポジトリー内のファイルにブックマークを保存して同期します。ウェブ UI はありませんが、Github、Gitlab、Gitea などのすべての Git ホスティングサーバーに対応しています。http、ftp、データ、ファイル、JavaScript のブックマークを同期できます。 "
},
"LabelGiturl": {
"message": "リポジトリーの URL (HTTP)"
},
"LabelGitbranch": {
"message": "Git ブランチ"
},
"LabelTelemetry": {
"message": "自動エラーレポート"
},
"DescriptionTelemetry": {
"message": "floccus は開発者に自動でエラーデータを送信できます。エラーデータは floccus のバグの迅速な発見と解消に役立ち、長期的には floccus のユーザー体験を向上させます。エラーレポートを有効にしても、floccus の開発者はあなたのブックマークを閲覧できません。"
},
"LabelTelemetryenable": {
"message": "floccus の開発者にエラーデータを自動送信する"
},
"LabelTelemetrydisable": {
"message": "floccus の開発者にエラーデータを送信しない"
}
}
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ android {
applicationId "org.handmadeideas.floccus"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 5001001
versionName "5.1.1"
versionCode 5001003
versionName "5.1.3"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions {
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
Expand Down
26 changes: 16 additions & 10 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:networkSecurityConfig="@xml/network_security_config">
android:networkSecurityConfig="@xml/network_security_config"
android:largeHeap="true">

<activity
android:exported="true"
Expand All @@ -24,15 +25,6 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

<intent-filter>
<action android:name="android.intent.action.SEND" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data android:mimeType="text/plain" />
</intent-filter>

<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
Expand All @@ -43,6 +35,20 @@
</intent-filter>
</activity>

<activity
android:name="de.mindlib.sendIntent.SendIntentActivity"
android:label="@string/app_name"
android:exported="true"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />

<!-- Depending on your project, you can add here the type of data you wish to receive -->
<data android:mimeType="text/plain" />
</intent-filter>
</activity>

<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
Expand Down
33 changes: 28 additions & 5 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ const paths = {
js: 'src/**',
builds: './builds/',
icons: 'icons/*',
dist: './dist/**'
dist: './dist/**',
distJs: './dist/js',
}

paths.chromeZip = [...paths.zip, 'manifest.chrome.json']
Expand Down Expand Up @@ -103,12 +104,25 @@ const js = function() {
/* stats options */
})
)

resolve()
})
)
}

const fixupBgScript = async function () {
const bgScript = fs.readFileSync(paths.distJs + '/background-script.js', 'utf8')
const addition = `
if ("undefined"!=typeof self && 'importScripts' in self) {
self.importScripts('./79.js')
self.importScripts('./88.js')
self.importScripts('./206.js')
self.importScripts('./895.js')
self.importScripts('./80.js')
}
`
fs.writeFileSync(paths.distJs + '/background-script.js', addition + bgScript)
}

const html = function() {
return Promise.all([
gulp.src(paths.nativeHTML).pipe(gulp.dest('./dist/')),
Expand All @@ -131,13 +145,21 @@ const native = async function() {
console.log(stdout)
}

const cleanJs = async function() {
try {
fs.rmSync(paths.distJs, { recursive: true })
} catch (e) {
// noop
}
}

const mocha = gulp.parallel(mochajs, mochacss)

const thirdparty = gulp.parallel(mocha)

const assets = gulp.parallel(html, thirdparty, icons)

const build = gulp.parallel(assets, js)
const build = gulp.series(cleanJs, js, fixupBgScript, assets)

const main = gulp.series(build, native)

Expand Down Expand Up @@ -228,12 +250,13 @@ function onWatchEvent(path) {
exports.html = html
exports.js = js
exports.mocha = mocha
exports.watch = watch
exports.release = release
exports.watch = gulp.series(gulp.parallel(assets, devjs), native, watch)
exports.watch = gulp.series(cleanJs,gulp.parallel(assets, devjs), native, watch)
exports.publish = publish
exports.build = build
exports.native = native
exports.package = gulp.series(gulp.parallel(firefoxZip, chromeZip, xpi), crx)
exports.fixupBgScript = fixupBgScript
/*
* Define default task that can be called by just running `gulp` from cli
*/
Expand Down
Loading

0 comments on commit f84f263

Please sign in to comment.