首页 > 其他分享 >屏幕分辨率|尺寸|颜色深度指纹修改

屏幕分辨率|尺寸|颜色深度指纹修改

时间:2024-11-28 20:33:27浏览次数:6  
标签:const attribute screen 指纹 display readonly HighEntropy 屏幕 分辨率

一、前端通过window.screen接口获取屏幕分辨率 尺寸 颜色深度,横屏竖屏信息。 

二、window.screen c++接口实现:

1、third_party\blink\renderer\core\frame\screen.idl

// https://drafts.csswg.org/cssom-view/#the-screen-interface

[
    Exposed=Window
] interface Screen : EventTarget {
    [HighEntropy=Direct, Measure] readonly attribute long availWidth;
    [HighEntropy=Direct, Measure] readonly attribute long availHeight;
    [HighEntropy=Direct, Measure] readonly attribute long width;
    [HighEntropy=Direct, Measure] readonly attribute long height;
    [HighEntropy=Direct, Measure] readonly attribute unsigned long colorDepth;
    // pixelDepth() is an alias for colorDepth(), no need to instrument it twice.
    [HighEntropy, Measure] readonly attribute unsigned long pixelDepth;

    // Non-standard
    [HighEntropy=Direct, Measure] readonly attribute long availLeft;
    [HighEntropy=Direct, Measure] readonly attribute long availTop;

    // Fired when the window’s screen or that screen's attributes change.
    // https://w3c.github.io/window-placement/
    [SecureContext, HighEntropy, MeasureAs=WindowScreenChange] attribute EventHandler onchange;

    // Whether the device’s visual output extends over multiple screens.
    // https://w3c.github.io/window-placement/
    [SecureContext, HighEntropy=Direct, MeasureAs=WindowScreenIsExtended] readonly attribute boolean isExtended;
};

2、接口实现c++

third_party\blink\renderer\core\frame\screen.h

third_party\blink\renderer\core\frame\screen.cc

namespace display {
struct ScreenInfo;
}

namespace blink {

class LocalDOMWindow;

class CORE_EXPORT Screen : public EventTarget,
                           public ExecutionContextClient,
                           public Supplementable<Screen> {
  DEFINE_WRAPPERTYPEINFO();

 public:
  Screen(LocalDOMWindow*, int64_t display_id);

  static bool AreWebExposedScreenPropertiesEqual(
      const display::ScreenInfo& prev,
      const display::ScreenInfo& current);

  int height() const;
  int width() const;
  unsigned colorDepth() const;
  unsigned pixelDepth() const;
  int availLeft() const;
  int availTop() const;
  int availHeight() const;
  int availWidth() const;

  void Trace(Visitor*) const override;

  // EventTarget:
  const WTF::AtomicString& InterfaceName() const override;
  ExecutionContext* GetExecutionContext() const override;

  // Whether the device’s visual output extends over multiple screens.
  // https://w3c.github.io/window-placement/
  bool isExtended() const;
  // Fired when the window’s screen or that screen's attributes change.
  // https://w3c.github.io/window-placement/
  DEFINE_ATTRIBUTE_EVENT_LISTENER(change, kChange)

  // Not web-exposed; for internal usage only.
  static constexpr int64_t kInvalidDisplayId = -1;
  int64_t DisplayId() const { return display_id_; }
  void UpdateDisplayId(int64_t display_id) { display_id_ = display_id; }

 protected:
  // Helpers to access screen information.
  gfx::Rect GetRect(bool available) const;
  const display::ScreenInfo& GetScreenInfo() const;

  // The internal id of the underlying display, to support multi-screen devices.
  int64_t display_id_;
};

}  // namespace blink

三、总结:

修改屏幕信息指纹只需要在screen.cc文件种修改即可。

标签:const,attribute,screen,指纹,display,readonly,HighEntropy,屏幕,分辨率
From: https://blog.csdn.net/jangdong/article/details/144117941

相关文章

  • 屏幕触控支持指纹修改
    一、前端navigator.maxTouchPoints获取屏幕是否支持触控。二、navigator.maxTouchPointsc++接口修改。1、third_party\blink\renderer\core\events\navigator_events.idl//https://w3c.github.io/pointerevents/#extensions-to-the-navigator-interface[Implement......
  • 26 基于STM32的智能门禁系统(指纹、蓝牙、刷卡、OLED、电机)
    目录一、主要功能二、硬件资源三、程序编程四、实现现象一、主要功能基于STM32单片机,六个按键,分别代表指纹、蓝牙、刷卡的正确进门与错误进门;比如第一个按键按下,表示指纹正确,OLED显示指纹正确,开门,第二个按键按下的话,则指纹错误,OLED显示指纹错误,请重试,第二个按键连......
  • 《用Python实现动态爱心表白:点亮屏幕上的浪漫时刻!》
    在代码的世界里,爱意也可以用程序表达。如果你想向心爱的TA表白,不如用Python来一场创意满满的“浪漫攻击”!今天,我将分享一个结合了动态爱心特效和交互式表白窗口的程序,快来试试吧!功能简介动态爱心特效使用数学公式绘制动态爱心,屏幕上会显示粉色爱心不停跳动,非常梦幻。......
  • Vite项目怎么进行屏幕适配?
    基于rem的适配方案1、安装依赖npmipostcss-pxtoremautoprefixeramfe-flexible--save-devpostcss-pxtorem是PostCSS的插件,用于将像素单元生成rem单位autoprefixer浏览器前缀处理插件amfe-flexible可伸缩布局方案替代了原先的lib-flexible 选用了当前众多浏览器兼容的......
  • 《安富莱嵌入式周报》第346期:开源2GHz带宽,12bit分辨率,3.2Gsps采样率示波,开源固件安全
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频:https://www.bilibili.com/video/BV1TYBhYKECK/目录:1、开源2GHz带宽,12bit分辨率,3.2Gsps采样率示波器2、开源嵌入式固件安全分析器3、TI分享的8通道隔离±12.288V......
  • 如何设置或取消屏幕保护(屏保)功能
        屏幕保护程序(屏保)自个人电脑早期时代起就存在,最初设计用来防止长时间显示同一图像导致的显示器烧录现象。随着技术的进步,现代显示器已不再需要这种保护,但屏保依然以其独特的魅力存在,不仅作为保护隐私的屏障,还成为了展示个性和艺术品味的窗口。    在个性......
  • OLED屏幕
    目录一、OLED屏幕的特点及原理1、OLED的特点2、OLED的显示原理3、OLED的显示过程二、OLED屏幕的使用过程1、SH1106驱动芯片介绍2、通信接口3、程序设计SPI通信相关函数SPI所用IO口的初始化函数SPI发送一字节函数OLED屏幕相关函数OLED所用到的IO初始化函数对OLED......
  • Mathtype 输入框调整 / 工作区调整 / 工具栏放大 / 工具栏符号乱码 / 数学符号显示乱
    注:本文为“Mathtype输入框调整/工作区调整/工具栏放大/工具栏符号乱码/数学符号显示乱码/设置公式分辨率/显示模糊”系列文章合辑。未整理去重。MathType调整工作区域大小发布时间:2016-12-1516:05:01下面就介绍公式编辑器调整工作区域大小的两种方......
  • 你对视网膜(Retina)分辨率有了解吗?有没有在实际中使用过?
    关于视网膜分辨率,我的理解如下:概念:“视网膜分辨率”这个术语是由苹果公司推广的,指的是像素密度达到肉眼无法分辨单个像素的程度。这并非一个固定的分辨率值,而是取决于设备的屏幕尺寸和观看距离。一般来说,像素密度达到或超过300PPI(每英寸像素数)就被认为是“视网膜级别”......
  • 通过学习先验增强基于流的生成超分辨率模型
    通过学习先验增强基于流的生成超分辨率模型   基于流的超分辨率(SR)模型在生成高质量图像方面表现出了惊人的能力。然而,这些方法在图像生成过程中遇到了一些挑战,例如网格伪影、爆炸反转以及由于采样温度不稳定而导致的次优结果。为了克服这些问题,这项工作在基于流的SR模型的推......