// 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());
}