pageta-native/ShareExtension/Resources/Info.plist
Till JS 27ef644892 feat(share): ShareExtension erfasst gerendertes HTML gegen Consent-Wände (C1)
Beim Teilen aus Safari greift ein JS-Preprocessing-File (GetPageHTML.js)
das gerenderte outerHTML der bereits zustimmenden Seite und legt es im
neuen SharedHTMLStore (App-Group, keyed auf SHA-256(url)) ab. Die App
schickt dieses HTML bei der Extraktion an /extract/preview mit — das
umgeht Cookie-/Pur-Wände, die der anonyme Server-Fetch sonst extrahiert
(gleicher Bypass wie das Web-Bookmarklet).

- SharedHTMLStore: put/peek/remove/prune, 4,9M-Char-Cap (API-Limit),
  7-Tage-TTL. HTML wird erst nach erfolgreicher Extraktion verworfen,
  damit ein 401/502-Retry (enrich-Sweep) es erneut nutzen kann.
- ShareViewController (iOS + macOS): liest das Property-List-Result,
  legt HTML ab, enqueued die URL wie bisher.
- project.yml: NSExtensionJavaScriptPreprocessingFile + WebPage-Activation
  + JS-Resource + SharedHTMLStore.swift in beide Extension-Targets.
- PagetaAPI.extractPreview(url:html:) + enrichArticle konsultiert den Store.

Greift nur beim Teilen aus Safari (Web-Page-Kontext); nackte URL-Shares
fallen sauber auf den URL-Pfad zurück.

iOS+macOS BUILD SUCCEEDED, 41/41 Tests grün (3 neue für SharedHTMLStore).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 01:01:21 +02:00

47 lines
1.5 KiB
Text

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>In Pageta speichern</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>XPC!</string>
<key>CFBundleShortVersionString</key>
<string>0.1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsText</key>
<true/>
<key>NSExtensionActivationSupportsWebPageWithMaxCount</key>
<integer>1</integer>
<key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
<integer>1</integer>
</dict>
<key>NSExtensionJavaScriptPreprocessingFile</key>
<string>GetPageHTML</string>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.share-services</string>
<key>NSExtensionPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).ShareViewController</string>
</dict>
</dict>
</plist>