1 分•作者: aadilghani•5 个月前
返回首页
最新
1 分•作者: JumpCrisscross•5 个月前
1 分•作者: JumpCrisscross•5 个月前
1 分•作者: Godofall•5 个月前
1 分•作者: sans_souse•5 个月前
2 分•作者: kageroumado•5 个月前
在两个浏览器窗口中打开同一个标签页。在 Chrome 或 Safari 中,你会得到两个互不相关的页面。在 Arc 中,一个窗口会显示一个占位符。在 Zen 中,它会静默地创建一个副本。<p>而在我开发的浏览器 Refrax 中,两个窗口都会显示同一个页面,并实时更新。同一个网页,你想开多少个窗口都可以。<p>这本不应该成为可能。WebKit 的 WKWebView 只能同时存在于一个视图层级结构中。在 macOS 26 中,苹果增加了一个 SwiftUI API,将 WebView 与 WebPage 分离开来,这样你就可以拥有多个引用同一页面的视图。但如果你尝试这样做,你的应用程序会崩溃。WebKit 源代码中有一个前提条件,注释写道:“无论如何,我们不能有多个拥有页面,但我们需要决定这是否是一个错误,我们是否可以优雅地处理它,以及它可能有多大的确定性……”<p>所以,这就是我实现它的方法。<p>CAPortalLayer 是一个未公开的私有类,自 macOS 10.12 以来就存在。它通过引用相同的 GPU 内存而不是复制它来镜像图层的合成输出。每次滚动、动画或重绘都会立即反映出来。这就是 Liquid Glass 效果、iOS 文本选择放大镜以及拖放过程中的幽灵图像的实现原理。苹果使用门户来实现各种效果。我用它们来将同一个网页放在两个窗口中。<p>Refrax 为每个标签页保留一个真实的 WKWebView,并在其他地方显示一个 CAPortalLayer 镜像。当你点击不同的窗口时,协调器会将真实的视图移动到那里,而旧的窗口则会获得一个门户。你无法分辨哪个是哪个。<p>这在理论上听起来很简单,但要让它真正无缝地工作需要付出相当大的努力。每个 macOS 窗口都有自己的渲染上下文,并且上下文 ID 会异步更新,因此立即创建门户会捕获过时的 ID,并且什么也不渲染。门户的创建需要延迟,但延迟会造成视觉上的间隙。我使用一个私有的 CoreGraphics 函数捕获 GPU 快照,并将其放置在门户后面作为备用。另一个难点是,这一切都没有文档说明。门户非常不稳定,如果使用不当,会使应用程序崩溃。我不得不检查头文件,然后反汇编二进制文件,以确切地了解它的工作原理,从而构建出一些可靠的东西。<p>在此之前,我从未从事过浏览器方面的工作,我只是一个用户。我从 2022 年开始使用 Arc。我记得申请邀请,学习快捷键,慢慢地习惯它。起初我不喜欢它,因为它有太多 Google Chrome 的影子,而我当时一直在使用 Safari。但它逐渐吸引了我,到它基本上被放弃并卖给 Atlassian 时,我再也无法回到 Safari 了。我尝试了所有东西:Zen、SigmaOS、Helium。没有一个感觉合适,而且我不想再用另一个 Chromium 分支。WebKit 随操作系统一起提供,但你得到的只是渲染引擎。标签页、历史记录、书签、密码、扩展程序,其他所有东西都必须单独制作。因此,作为一个非常理性的人,我决定从头开始制作自己的 Arc 替代品。<p>然后我做到了。Refrax 使用 Swift 和 Objective-C 构建,没有任何外部依赖。应用程序本身小于 30 MB。我现在有 393 个标签页处于打开状态,使用了 442 MB 的 RAM;Safari 中 150 个标签页就已经超过了 1 GB。我每天都在使用它,已经使用了一个多月了,我的朋友们也是如此。<p>门户镜像只是一个功能。同样的方法,找到苹果为自己构建的东西,并用它来创造他们没有想到的东西,贯穿了整个浏览器。你可以用可调节的混合模式和透明度来给你的玻璃窗口着色。紧凑模式下的侧边栏会采样页面并匹配颜色。并且它支持 Firefox 和 Chrome 扩展程序。<p>Alpha 版本是公开的。从链接的网站下载,输入 REFRAX-ALPHA-HACKERNEWS 进行激活。无需帐户。遥测数据是崩溃报告和每日活跃用户 ping,仅此而已。如果你发现了错误——这是我独自构建的,所以我真的会阅读你的报告。
1 分•作者: est•5 个月前
2 分•作者: jacAtSea•5 个月前
您好!
被裁员了,休了一年空档期,现在想重回行业。想用 Python/Java + Claude Code + 云平台(AWS、GCP、Azure)做一个副业项目。
有没有办法免费或低价获得 Claude 和 AWS 的额度?我愿意参与志愿项目。
谢谢!
38 分•作者: weinzierl•5 个月前
42 分•作者: raybb•5 个月前
1 分•作者: xenodium•5 个月前
1 分•作者: worldofmatthew•5 个月前
1 分•作者: spacebarshift•5 个月前
1 分•作者: forest0xia•5 个月前
1 分•作者: bookofjoe•5 个月前
1 分•作者: paulpauper•5 个月前
1 分•作者: evo_9•5 个月前
1 分•作者: ahamez•5 个月前
1 分•作者: Dagulf795•5 个月前
1 分•作者: Allenboyy•5 个月前
为每一位创作者打造的电商平台