// Regression test for crbug.com/646869 where the client's data is cleared // before didAppendFirstData is called. TEST_F(CSSPreloadScannerTest, DontReadFromClearedData) { std::unique_ptr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSize(500, 500)); dummyPageHolder->document().settings()->setCSSExternalScannerNoPreload(true); HTMLResourcePreloader* preloader = HTMLResourcePreloader::create(dummyPageHolder->document()); KURL url(ParsedURLString, "http://127.0.0.1/foo.css"); CSSStyleSheetResource* resource = CSSStyleSheetResource::createForTest(ResourceRequest(url), "utf-8"); const char* data = "@import url('http://127.0.0.1/preload.css');"; resource->appendData(data, strlen(data)); ResourceError error(errorDomainBlinkInternal, 0, url.getString(), ""); resource->error(error); // Should not crash. PreloadSuppressingCSSPreloaderResourceClient* resourceClient = new PreloadSuppressingCSSPreloaderResourceClient(resource, preloader); EXPECT_EQ(0u, resourceClient->m_preloads.size()); }