Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
1 #ifndef SkXfermode_opts_arm_neon_DEFINED
2 #define SkXfermode_opts_arm_neon_DEFINED
4 #include "SkXfermode_proccoeff.h"
6 class SkNEONProcCoeffXfermode : public SkProcCoeffXfermode {
7 public:
8 SkNEONProcCoeffXfermode(const ProcCoeff& rec, SkXfermode::Mode mode,
9 void* procSIMD)
10 : INHERITED(rec, mode), fProcSIMD(procSIMD) {}
12 virtual void xfer32(SkPMColor dst[], const SkPMColor src[], int count,
13 const SkAlpha aa[]) const SK_OVERRIDE;
14 virtual void xfer16(uint16_t* SK_RESTRICT dst, const SkPMColor* SK_RESTRICT src,
15 int count, const SkAlpha* SK_RESTRICT aa) const SK_OVERRIDE;
17 SK_TO_STRING_OVERRIDE()
18 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkNEONProcCoeffXfermode)
20 private:
21 SkNEONProcCoeffXfermode(SkReadBuffer& buffer);
23 // void* is used to avoid pulling arm_neon.h in the core and having to build
24 // it with -mfpu=neon.
25 void* fProcSIMD;
26 typedef SkProcCoeffXfermode INHERITED;
27 };
29 extern SkPMColor srcatop_modeproc_neon(SkPMColor src, SkPMColor dst);
30 extern SkPMColor dstatop_modeproc_neon(SkPMColor src, SkPMColor dst);
31 extern SkPMColor xor_modeproc_neon(SkPMColor src, SkPMColor dst);
32 extern SkPMColor plus_modeproc_neon(SkPMColor src, SkPMColor dst);
33 extern SkPMColor modulate_modeproc_neon(SkPMColor src, SkPMColor dst);
35 #endif //#ifdef SkXfermode_opts_arm_neon_DEFINED