void handleAcceptClientHintsHeader(const String& headerValue, ClientHintsPreferences& preferences) { if (RuntimeEnabledFeatures::clientHintsEnabled()) { CommaDelimitedHeaderSet acceptCH; parseCommaDelimitedHeader(headerValue, acceptCH); if (acceptCH.contains("dpr")) preferences.setShouldSendDPR(true); if (acceptCH.contains("rw")) preferences.setShouldSendRW(true); } }
TEST_F(FrameFetchContextHintsTest, MonitorBothHints) { expectHeader("http://www.example.com/1.gif", "DPR", false, ""); expectHeader("http://www.example.com/1.gif", "RW", false, ""); ClientHintsPreferences preferences; preferences.setShouldSendDPR(true); preferences.setShouldSendRW(true); document->setClientHintsPreferences(preferences); expectHeader("http://www.example.com/1.gif", "DPR", true, "1"); expectHeader("http://www.example.com/1.gif", "RW", true, "500"); }
TEST_F(FrameFetchContextHintsTest, MonitorRWHints) { expectHeader("http://www.example.com/1.gif", "RW", false, ""); ClientHintsPreferences preferences; preferences.setShouldSendRW(true); document->setClientHintsPreferences(preferences); expectHeader("http://www.example.com/1.gif", "RW", true, "500"); dummyPageHolder->frameView().setLayoutSizeFixedToFrameSize(false); dummyPageHolder->frameView().setLayoutSize(IntSize(800, 800)); expectHeader("http://www.example.com/1.gif", "RW", true, "800"); expectHeader("http://www.example.com/1.gif", "DPR", false, ""); }