乐于分享
好东西不私藏

魔改Firefox火狐浏览器源码webGPU指纹定制(文档给AI可一键修改完毕)

魔改Firefox火狐浏览器源码webGPU指纹定制(文档给AI可一键修改完毕)
所有修改如意均使用自营中转gpt 5.5 xhigh完成:
AI网址,低价耐用,包纯度稳定:https://xjbtoken.site/

  • 目标

    目标是让页面侧看到一组可配置、互相一致的 WebGPU 能力,而不是直接暴露真实机器或因为系统 WebGPU 不可用而显示不支持。

    BrowserScan 一类站点通常会检查这些点:

    • navigator.gpu 是否存在。

    • canvas.getContext("webgpu") 是否可用。

    • navigator.gpu.requestAdapter() 是否返回 adapter。

    • adapter.info 的 vendorarchitecturedevicedescriptionsubgroupMinSizesubgroupMaxSizeisFallbackAdapter

    • adapter.features 和 device.features

    • adapter.limits 和 device.limits

    • device.adapterInfo 是否和 adapter.info 一致。

    • navigator.gpu.wgslLanguageFeatures

    • navigator.gpu.getPreferredCanvasFormat()

    因此改动不是只把一个开关打开,而是让 WebGPU 的暴露、adapter、device、features、limits、WGSL 和 canvas format 走同一份 fp.txt 配置。

    配置入口

    运行 Firefox 时需要带 --fpfile,例如当前方案使用:

    txt

    C:\firefox\fp.txt

    WebGPU 相关字段采用两种命名兼容:

    • 推荐新格式:webgpu.enabled:truewebgpu.vendor:AMDwebgpu.limits.maxTextureDimension2D:16384

    • 兼容旧格式:webgpu_enabled=1webgpu_vendor=AMDwebgpu_max_texture_dimension_2d=16384

    当前 fp.txt 中主要字段示例:

    txt

    webgpu.enabled:true
    webgpu.vendor:AMD
    webgpu.architecture:rdna2
    webgpu.device:AMD Radeon RX 6800 XT
    webgpu.description:ANGLE (AMD, AMD Radeon RX 6800 XT Direct3D12)
    webgpu.subgroupMinSize:4
    webgpu.subgroupMaxSize:128
    webgpu.isFallbackAdapter:false
    webgpu.preferredCanvasFormat:bgra8unorm
    webgpu.features:core-features-and-limits,texture-compression-bc,shader-f16,bgra8unorm-storage
    webgpu.wgslLanguageFeatures:readonly_and_readwrite_storage_textures,packed_4x8_integer_dot_product,pointer_composite_access
    webgpu.limits.maxTextureDimension1D:16384
    webgpu.limits.maxTextureDimension2D:16384
    webgpu.limits.maxTextureDimension3D:2048

    文件改动

    dom/webgpu/Utility.h

    新增 WebGPU 指纹读取的公共接口:

    C++

    boolReadFpFileValue(std::string_view aKey, std::string& aOutValue);
    boolReadFpFileBool(std::string_view aKey, bool* aOutValue);
    boolWebGPUFpEnabled();

    为什么改这里:

    • WebGPU 的多个文件都要读 fp.txt,不能每个点各自写一套开关逻辑。

    • Utility.h 已经是 WebGPU 模块公共工具头,放这里能让 InstanceAdapter、IPC 回调和 canvas 类型判断复用同一套语义。

    dom/webgpu/Utility.cpp

    新增 --fpfile 读取和解析逻辑:

    • 从命令行读取 fpfile switch。

    • 支持 key:value 和 key=value 两种格式。

    • 去掉 key/value 两侧空白。

    • 读取失败时返回空配置。

    • WebGPUFpEnabled() 支持显式开关:webgpu.enabled / webgpu_enabled

    • 没有显式开关时,只要存在 webgpu. 或 webgpu_ 前缀字段,也认为 WebGPU 指纹模式启用。

    为什么这么改:

    • 之前 WebGPU 是否暴露完全受 Firefox pref、blocklist、后端能力影响。这样会导致 BrowserScan 显示“不支持 WebGPU”。

    • 指纹模式需要独立于真实硬件可用性,只要配置文件声明 WebGPU,就能走后续合成/覆盖逻辑。

    • 支持新旧 key 是为了兼容之前 WebKit 方案里的字段风格,同时符合当前 Firefox 代码里 webgpu.* 的命名习惯。

    dom/webgpu/Instance.cpp

    改动点:

    • Instance::PrefEnabled():当 WebGPUFpEnabled() 为真时,即使 dom.webgpu.enabled pref 没开,也暴露 navigator.gpu

    • service worker 场景同样允许由 WebGPU 指纹开关启用。

    • Instance::Instance():读取 webgpu.wgslLanguageFeatures / webgpu_wgsl_language_features,覆盖 navigator.gpu.wgslLanguageFeatures

    • Instance::GetPreferredCanvasFormat():读取 webgpu.preferredCanvasFormatwebgpu.canvasFormatwebgpu_preferred_canvas_format,覆盖 navigator.gpu.getPreferredCanvasFormat()

    • Instance::RequestAdapter():在 blocklist、pref 禁用、dxcompiler 不可用等检查里加入 webgpuFpEnabled 例外。

    • 请求 adapter 时把 webgpuFpEnabled 传给底层 wgpu 请求流程,用于允许 no-op fallback。

    为什么改这里:

    • Instance 是页面入口,也就是 navigator.gpu 的背后对象。

    • 如果这里不放行,后面 adapter/features/limits 都不会被页面看到。

    • WGSL features 和 preferred canvas format 是 navigator.gpu 级别 API,不属于 adapter,因此必须在 Instance 里覆盖。

    dom/webgpu/Adapter.cpp

    这是 WebGPU 指纹的核心覆盖点。

    新增/修改内容:

    • 增加读取数字、布尔、字符串、limits、features 的辅助函数。

    • AdapterInfo getter 读取 fp.txt

      • vendor

      • architecture

      • device

      • description

      • subgroupMinSize

      • subgroupMaxSize

      • isFallbackAdapter

      • wgpuName 也支持由 webgpu.adapterName / webgpu.description 覆盖。

    • 新增 CreateWebGPUFpAdapterInfo(),用于没有真实 adapter 时创建一个 synthetic adapter 信息。

    • 新增 Adapter::CreateFallback(),用于 requestAdapter() 原本返回 null 时仍能返回一个可用的 adapter 对象。

    • 构造 Adapter 时调用:

      • ApplyWebGPUFpLimits(mLimits)

      • ApplyWebGPUFpFeatures(this, mFeatures)

    • requestDevice() 路径里也调用:

      • MergeWebGPUFpFeatures(this, features)

      • ApplyWebGPUFpLimits(limits)

    • fallback adapter 的 requestDevice() 不再去真实后端创建 device,而是直接合成 Device、queue id 和 limits/features。

    为什么改这里:

    • BrowserScan 会同时读取 adapter 和 device 两边。如果只改 adapter.limits,但 device.limits 仍是真实值,会出现交叉不一致。

    • adapter info 是最明显的 GPU 指纹来源,必须由 fp.txt 覆盖。

    • features 必须过滤 Firefox 当前真正实现的 feature,避免配置了未实现 feature 后 requestDevice() 失败。

    • fallback adapter 是为了处理真实机器、blocklist、驱动、后端不满足时 requestAdapter() 返回 null 的情况。

    dom/webgpu/SupportedLimits.h

    新增 limit override 存储:

    C++

    std::array<uint64_t, kLimitCount> mLimitOverrides;
    std::array<bool, kLimitCount> mHasLimitOverride;
    voidSetLimitOverride(Limit, uint64_t);
    uint64_tGetLimitValue(Limit)const;

    为什么改这里:

    • WebGPU limits 的 getter 都走 SupportedLimits

    • 直接改底层 ffi::WGPULimits 不够,因为有些 JS 暴露字段是合成字段,例如 maxBindGroupsPlusVertexBuffers

    • 用 override 数组可以只覆盖 fp.txt 配置过的字段,没有配置的字段仍保留原来的默认/真实值。

    dom/webgpu/SupportedLimits.cpp

    实现 GetLimitValue() 和 SetLimitOverride()

    改动语义:

    • 如果某个 limit 有 fp override,就优先返回 override。

    • 否则返回原始 ffi::WGPULimits 中的值。

    为什么改这里:

    • adapter.limits.xxx 和 device.limits.xxx 都最终通过这些 getter 暴露给 JS。

    • 把覆盖集中在这里,可以避免每个 limit getter 单独写判断。

    dom/webgpu/ipc/WebGPUChild.cpp

    改动 wgpu_child_resolve_request_adapter_promise()

    • 原本底层返回 aAdapterInfo == nullptr 时,promise resolve 为 null

    • 现在如果 WebGPUFpEnabled() 为真,会创建 Adapter::CreateFallback()

    • 如果页面显式请求 forceFallbackAdapter,会检查 isFallbackAdapter 配置,避免语义冲突。

    为什么改这里:

    • 很多“WebGPU 不支持”的最终表现就是 requestAdapter() resolve 为 null。

    • 在这个 IPC 回调点处理,可以覆盖真实后端失败、NOOP 后端失败、blocklist 等导致的 null adapter。

    dom/canvas/CanvasUtils.cpp

    改动 canvas context 类型判断:

    C++

    if (gfxVars::AllowWebGPU() || mozilla::webgpu::WebGPUFpEnabled()) {
    if (str.EqualsLiteral("webgpu")) {
        *out_type = dom::CanvasContextType::WebGPU;
    returntrue;
      }
    }

    为什么改这里:

    • BrowserScan 会检查 document.createElement("canvas").getContext("webgpu")

    • 只暴露 navigator.gpu 不够,canvas 的 webgpu context 也必须可识别。

    gfx/wgpu_bindings/src/client.rs

    wgpu_client_request_adapter() 增加 allow_noop_fallback 参数,并通过 IPC message 传给 server。

    为什么改这里:

    • C++ 层知道当前是否处于 WebGPU fp 模式,但真正选择后端是在 Rust wgpu server 侧。

    • 需要把“允许 no-op fallback”的意图从 C++ 传到 Rust。

    gfx/wgpu_bindings/src/server.rs

    Message::RequestAdapter 增加 allow_noop_fallback 字段。

    改动逻辑:

    • 如果 allow_noop_fallback 为真,优先尝试 Backends::NOOP

    • 之后仍保留 Windows DX12/WebRender adapter、正常 backend 等原有流程。

    为什么改这里:

    • NOOP 后端可以在没有真实 GPU adapter 或真实 adapter 不可用时,让 WebGPU 请求流程继续走下去。

    • BrowserScan 主要检查 JS 暴露面,不一定会做复杂 GPU 工作;NOOP fallback 足以支撑基础 API 指纹检查。

    ruyi_webgpu_probe.py

    扩展本地探针:

    • 设置 WebGPU 相关 prefs。

    • 使用 --fpfile=C:\firefox\fp.txt 启动当前构建的 Firefox。

    • 检查:

      • isSecureContext

      • navigator.gpu

      • canvas.getContext("webgpu")

      • requestAdapter()

      • adapter.info

      • adapter.features

      • adapter.limits

      • requestDevice()

      • device.features

      • device.limits

      • device.adapterInfo

      • wgslLanguageFeatures

      • preferredCanvasFormat

    • 后续也加入了 WebGL 和 Touch 探针,方便看 BrowserScan 相关的整体一致性。

    为什么改这里:

    • BrowserScan 是线上站点,结果受页面脚本变化、网络和 profile 状态影响。

    • 本地 probe 能快速确认 Firefox JS 暴露面是否已经按 fp.txt 输出。

    当前支持的 WebGPU key

    信息类:

    txt

    webgpu.enabled
    webgpu.vendor
    webgpu.architecture
    webgpu.device
    webgpu.description
    webgpu.subgroupMinSize
    webgpu.subgroupMaxSize
    webgpu.isFallbackAdapter
    webgpu.adapterName

    集合类:

    txt

    webgpu.features
    webgpu.wgslLanguageFeatures

    canvas:

    txt

    webgpu.preferredCanvasFormat
    webgpu.canvasFormat

    limits 类推荐使用:

    txt

    webgpu.limits.maxTextureDimension1D
    webgpu.limits.maxTextureDimension2D
    webgpu.limits.maxTextureDimension3D
    webgpu.limits.maxTextureArrayLayers
    webgpu.limits.maxBindGroups
    webgpu.limits.maxBindGroupsPlusVertexBuffers
    webgpu.limits.maxBindingsPerBindGroup
    webgpu.limits.maxDynamicUniformBuffersPerPipelineLayout
    webgpu.limits.maxDynamicStorageBuffersPerPipelineLayout
    webgpu.limits.maxSampledTexturesPerShaderStage
    webgpu.limits.maxSamplersPerShaderStage
    webgpu.limits.maxStorageBuffersInVertexStage
    webgpu.limits.maxStorageBuffersInFragmentStage
    webgpu.limits.maxStorageBuffersPerShaderStage
    webgpu.limits.maxStorageTexturesInVertexStage
    webgpu.limits.maxStorageTexturesInFragmentStage
    webgpu.limits.maxStorageTexturesPerShaderStage
    webgpu.limits.maxUniformBuffersPerShaderStage
    webgpu.limits.maxUniformBufferBindingSize
    webgpu.limits.maxStorageBufferBindingSize
    webgpu.limits.minUniformBufferOffsetAlignment
    webgpu.limits.minStorageBufferOffsetAlignment
    webgpu.limits.maxVertexBuffers
    webgpu.limits.maxBufferSize
    webgpu.limits.maxVertexAttributes
    webgpu.limits.maxVertexBufferArrayStride
    webgpu.limits.maxInterStageShaderVariables
    webgpu.limits.maxColorAttachments
    webgpu.limits.maxColorAttachmentBytesPerSample
    webgpu.limits.maxComputeWorkgroupStorageSize
    webgpu.limits.maxComputeInvocationsPerWorkgroup
    webgpu.limits.maxComputeWorkgroupSizeX
    webgpu.limits.maxComputeWorkgroupSizeY
    webgpu.limits.maxComputeWorkgroupSizeZ
    webgpu.limits.maxComputeWorkgroupsPerDimension

    一致性原则

    WebGPU 指纹不要孤立配置。建议和 WebGL 保持同一个 GPU 画像:

    • webgpu.vendor 与 webgl.unmasked_vendor 不要冲突。

    • webgpu.device / webgpu.description 与 webgl.renderer 不要表现成完全不同显卡。

    • limits 不要超过该 GPU/浏览器组合常见上限。

    • features 不要配置 Firefox 当前未实现的枚举,否则高级探针可以通过 requestDevice() 或 shader/resource 创建发现不一致。

    已知边界

    当前方案主要覆盖 BrowserScan 常见的 WebGPU JS 暴露面,不等于完整模拟真实 GPU。

    仍可能被深度探测的点:

    • 真实 shader 编译和 WGSL validation 行为。

    • 复杂 texture/buffer/pipeline 创建行为。

    • ChromeOnly 的部分 wgpu* 字段仍可能来自真实后端或 fallback 默认值。

    • subgroupsdual-source-blendingprimitive-index 等 Firefox 未实现 feature 会被过滤。

    • NOOP fallback 可以支撑基础 API,但不能等价于真实 DX12/AMD 后端。


完整文档代码修改位于星球,持续更新高质量文章和工具
如意本人联系方式
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-02 06:33:46 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/693192.html
  2. 运行时间 : 0.212232s [ 吞吐率:4.71req/s ] 内存消耗:4,742.85kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=c61bdb9efb1592311b71726e30d689a1
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001135s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001603s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000861s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000671s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001342s ]
  6. SELECT * FROM `set` [ RunTime:0.000526s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001456s ]
  8. SELECT * FROM `article` WHERE `id` = 693192 LIMIT 1 [ RunTime:0.001058s ]
  9. UPDATE `article` SET `lasttime` = 1780353226 WHERE `id` = 693192 [ RunTime:0.008012s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000677s ]
  11. SELECT * FROM `article` WHERE `id` < 693192 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001118s ]
  12. SELECT * FROM `article` WHERE `id` > 693192 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000951s ]
  13. SELECT * FROM `article` WHERE `id` < 693192 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.005577s ]
  14. SELECT * FROM `article` WHERE `id` < 693192 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001797s ]
  15. SELECT * FROM `article` WHERE `id` < 693192 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002003s ]
0.216140s