| OLD | NEW | 
|     1 /* |     1 /* | 
|     2  * Copyright (c) 2013, Google Inc. All rights reserved. |     2  * Copyright (c) 2013, Google Inc. All rights reserved. | 
|     3  * |     3  * | 
|     4  * Redistribution and use in source and binary forms, with or without |     4  * Redistribution and use in source and binary forms, with or without | 
|     5  * modification, are permitted provided that the following conditions are |     5  * modification, are permitted provided that the following conditions are | 
|     6  * met: |     6  * met: | 
|     7  * |     7  * | 
|     8  *     * Redistributions of source code must retain the above copyright |     8  *     * Redistributions of source code must retain the above copyright | 
|     9  * notice, this list of conditions and the following disclaimer. |     9  * notice, this list of conditions and the following disclaimer. | 
|    10  *     * Redistributions in binary form must reproduce the above |    10  *     * Redistributions in binary form must reproduce the above | 
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   232       new MockImageResourceClient(cachedImage); |   232       new MockImageResourceClient(cachedImage); | 
|   233   EXPECT_EQ(Resource::Pending, cachedImage->getStatus()); |   233   EXPECT_EQ(Resource::Pending, cachedImage->getStatus()); | 
|   234  |   234  | 
|   235   // Send the multipart response. No image or data buffer is created. Note that |   235   // Send the multipart response. No image or data buffer is created. Note that | 
|   236   // the response must be routed through ResourceLoader to ensure the load is |   236   // the response must be routed through ResourceLoader to ensure the load is | 
|   237   // flagged as multipart. |   237   // flagged as multipart. | 
|   238   ResourceResponse multipartResponse(KURL(), "multipart/x-mixed-replace", 0, |   238   ResourceResponse multipartResponse(KURL(), "multipart/x-mixed-replace", 0, | 
|   239                                      nullAtom, String()); |   239                                      nullAtom, String()); | 
|   240   multipartResponse.setMultipartBoundary("boundary", strlen("boundary")); |   240   multipartResponse.setMultipartBoundary("boundary", strlen("boundary")); | 
|   241   cachedImage->loader()->didReceiveResponse( |   241   cachedImage->loader()->didReceiveResponse( | 
|   242       nullptr, WrappedResourceResponse(multipartResponse), nullptr); |   242       WrappedResourceResponse(multipartResponse), nullptr); | 
|   243   EXPECT_FALSE(cachedImage->resourceBuffer()); |   243   EXPECT_FALSE(cachedImage->resourceBuffer()); | 
|   244   EXPECT_FALSE(cachedImage->hasImage()); |   244   EXPECT_FALSE(cachedImage->hasImage()); | 
|   245   EXPECT_EQ(0, client->imageChangedCount()); |   245   EXPECT_EQ(0, client->imageChangedCount()); | 
|   246   EXPECT_FALSE(client->notifyFinishedCalled()); |   246   EXPECT_FALSE(client->notifyFinishedCalled()); | 
|   247   EXPECT_EQ("multipart/x-mixed-replace", cachedImage->response().mimeType()); |   247   EXPECT_EQ("multipart/x-mixed-replace", cachedImage->response().mimeType()); | 
|   248  |   248  | 
|   249   const char firstPart[] = |   249   const char firstPart[] = | 
|   250       "--boundary\n" |   250       "--boundary\n" | 
|   251       "Content-Type: image/svg+xml\n\n"; |   251       "Content-Type: image/svg+xml\n\n"; | 
|   252   cachedImage->appendData(firstPart, strlen(firstPart)); |   252   cachedImage->appendData(firstPart, strlen(firstPart)); | 
| (...skipping 23 matching lines...) Expand all  Loading... | 
|   276   EXPECT_EQ(0, client2->imageChangedCount()); |   276   EXPECT_EQ(0, client2->imageChangedCount()); | 
|   277   EXPECT_FALSE(client2->notifyFinishedCalled()); |   277   EXPECT_FALSE(client2->notifyFinishedCalled()); | 
|   278  |   278  | 
|   279   const char thirdPart[] = "--boundary"; |   279   const char thirdPart[] = "--boundary"; | 
|   280   cachedImage->appendData(thirdPart, strlen(thirdPart)); |   280   cachedImage->appendData(thirdPart, strlen(thirdPart)); | 
|   281   ASSERT_TRUE(cachedImage->resourceBuffer()); |   281   ASSERT_TRUE(cachedImage->resourceBuffer()); | 
|   282   EXPECT_EQ(strlen(secondPart) - 1, cachedImage->resourceBuffer()->size()); |   282   EXPECT_EQ(strlen(secondPart) - 1, cachedImage->resourceBuffer()->size()); | 
|   283  |   283  | 
|   284   // This part finishes. The image is created, callbacks are sent, and the data |   284   // This part finishes. The image is created, callbacks are sent, and the data | 
|   285   // buffer is cleared. |   285   // buffer is cleared. | 
|   286   cachedImage->loader()->didFinishLoading(nullptr, 0.0, 0, 0); |   286   cachedImage->loader()->didFinishLoading(0.0, 0, 0); | 
|   287   EXPECT_TRUE(cachedImage->resourceBuffer()); |   287   EXPECT_TRUE(cachedImage->resourceBuffer()); | 
|   288   EXPECT_FALSE(cachedImage->errorOccurred()); |   288   EXPECT_FALSE(cachedImage->errorOccurred()); | 
|   289   ASSERT_TRUE(cachedImage->hasImage()); |   289   ASSERT_TRUE(cachedImage->hasImage()); | 
|   290   EXPECT_FALSE(cachedImage->getImage()->isNull()); |   290   EXPECT_FALSE(cachedImage->getImage()->isNull()); | 
|   291   EXPECT_EQ(1, cachedImage->getImage()->width()); |   291   EXPECT_EQ(1, cachedImage->getImage()->width()); | 
|   292   EXPECT_EQ(1, cachedImage->getImage()->height()); |   292   EXPECT_EQ(1, cachedImage->getImage()->height()); | 
|   293   EXPECT_EQ(1, client->imageChangedCount()); |   293   EXPECT_EQ(1, client->imageChangedCount()); | 
|   294   EXPECT_TRUE(client->notifyFinishedCalled()); |   294   EXPECT_TRUE(client->notifyFinishedCalled()); | 
|   295   EXPECT_EQ(1, client2->imageChangedCount()); |   295   EXPECT_EQ(1, client2->imageChangedCount()); | 
|   296   EXPECT_TRUE(client2->notifyFinishedCalled()); |   296   EXPECT_TRUE(client2->notifyFinishedCalled()); | 
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   431   EXPECT_EQ(1, cachedImage->getImage()->height()); |   431   EXPECT_EQ(1, cachedImage->getImage()->height()); | 
|   432  |   432  | 
|   433   // Call reloadIfLoFiOrPlaceholder() after the image has finished loading. |   433   // Call reloadIfLoFiOrPlaceholder() after the image has finished loading. | 
|   434   cachedImage->reloadIfLoFiOrPlaceholder(fetcher); |   434   cachedImage->reloadIfLoFiOrPlaceholder(fetcher); | 
|   435   EXPECT_FALSE(cachedImage->errorOccurred()); |   435   EXPECT_FALSE(cachedImage->errorOccurred()); | 
|   436   EXPECT_FALSE(cachedImage->resourceBuffer()); |   436   EXPECT_FALSE(cachedImage->resourceBuffer()); | 
|   437   EXPECT_FALSE(cachedImage->hasImage()); |   437   EXPECT_FALSE(cachedImage->hasImage()); | 
|   438   EXPECT_EQ(3, client->imageChangedCount()); |   438   EXPECT_EQ(3, client->imageChangedCount()); | 
|   439  |   439  | 
|   440   cachedImage->loader()->didReceiveResponse( |   440   cachedImage->loader()->didReceiveResponse( | 
|   441       nullptr, WrappedResourceResponse(resourceResponse), nullptr); |   441       WrappedResourceResponse(resourceResponse), nullptr); | 
|   442   cachedImage->loader()->didReceiveData( |   442   cachedImage->loader()->didReceiveData( | 
|   443       nullptr, reinterpret_cast<const char*>(kJpegImage2), sizeof(kJpegImage2), |   443       reinterpret_cast<const char*>(kJpegImage2), sizeof(kJpegImage2), | 
|   444       sizeof(kJpegImage2)); |   444       sizeof(kJpegImage2)); | 
|   445   cachedImage->loader()->didFinishLoading(nullptr, 0.0, sizeof(kJpegImage2), |   445   cachedImage->loader()->didFinishLoading(0.0, sizeof(kJpegImage2), | 
|   446                                           sizeof(kJpegImage2)); |   446                                           sizeof(kJpegImage2)); | 
|   447   EXPECT_FALSE(cachedImage->errorOccurred()); |   447   EXPECT_FALSE(cachedImage->errorOccurred()); | 
|   448   ASSERT_TRUE(cachedImage->hasImage()); |   448   ASSERT_TRUE(cachedImage->hasImage()); | 
|   449   EXPECT_FALSE(cachedImage->getImage()->isNull()); |   449   EXPECT_FALSE(cachedImage->getImage()->isNull()); | 
|   450   EXPECT_EQ(sizeof(kJpegImage2), client->encodedSizeOnLastImageChanged()); |   450   EXPECT_EQ(sizeof(kJpegImage2), client->encodedSizeOnLastImageChanged()); | 
|   451   EXPECT_TRUE(client->notifyFinishedCalled()); |   451   EXPECT_TRUE(client->notifyFinishedCalled()); | 
|   452   // The client should not have been notified of completion again. |   452   // The client should not have been notified of completion again. | 
|   453   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnNotifyFinished()); |   453   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnNotifyFinished()); | 
|   454   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnImageNotifyFinished()); |   454   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnImageNotifyFinished()); | 
|   455   EXPECT_TRUE(cachedImage->getImage()->isBitmapImage()); |   455   EXPECT_TRUE(cachedImage->getImage()->isBitmapImage()); | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
|   470   ImageResource* cachedImage = ImageResource::fetch(fetchRequest, fetcher); |   470   ImageResource* cachedImage = ImageResource::fetch(fetchRequest, fetcher); | 
|   471   Persistent<MockImageResourceClient> client = |   471   Persistent<MockImageResourceClient> client = | 
|   472       new MockImageResourceClient(cachedImage); |   472       new MockImageResourceClient(cachedImage); | 
|   473  |   473  | 
|   474   // Send the image response. |   474   // Send the image response. | 
|   475   ResourceResponse initialResourceResponse( |   475   ResourceResponse initialResourceResponse( | 
|   476       testURL, "image/jpeg", sizeof(kJpegImage), nullAtom, String()); |   476       testURL, "image/jpeg", sizeof(kJpegImage), nullAtom, String()); | 
|   477   initialResourceResponse.addHTTPHeaderField("chrome-proxy", "q=low"); |   477   initialResourceResponse.addHTTPHeaderField("chrome-proxy", "q=low"); | 
|   478  |   478  | 
|   479   cachedImage->loader()->didReceiveResponse( |   479   cachedImage->loader()->didReceiveResponse( | 
|   480       nullptr, WrappedResourceResponse(initialResourceResponse)); |   480       WrappedResourceResponse(initialResourceResponse)); | 
|   481   cachedImage->loader()->didReceiveData( |   481   cachedImage->loader()->didReceiveData( | 
|   482       nullptr, reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage), |   482       reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage), | 
|   483       sizeof(kJpegImage)); |   483       sizeof(kJpegImage)); | 
|   484  |   484  | 
|   485   EXPECT_FALSE(cachedImage->errorOccurred()); |   485   EXPECT_FALSE(cachedImage->errorOccurred()); | 
|   486   ASSERT_TRUE(cachedImage->hasImage()); |   486   ASSERT_TRUE(cachedImage->hasImage()); | 
|   487   EXPECT_FALSE(cachedImage->getImage()->isNull()); |   487   EXPECT_FALSE(cachedImage->getImage()->isNull()); | 
|   488   EXPECT_EQ(1, client->imageChangedCount()); |   488   EXPECT_EQ(1, client->imageChangedCount()); | 
|   489   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnLastImageChanged()); |   489   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnLastImageChanged()); | 
|   490   EXPECT_FALSE(client->notifyFinishedCalled()); |   490   EXPECT_FALSE(client->notifyFinishedCalled()); | 
|   491   EXPECT_TRUE(cachedImage->getImage()->isBitmapImage()); |   491   EXPECT_TRUE(cachedImage->getImage()->isBitmapImage()); | 
|   492   EXPECT_EQ(1, cachedImage->getImage()->width()); |   492   EXPECT_EQ(1, cachedImage->getImage()->width()); | 
|   493   EXPECT_EQ(1, cachedImage->getImage()->height()); |   493   EXPECT_EQ(1, cachedImage->getImage()->height()); | 
|   494  |   494  | 
|   495   // Call reloadIfLoFiOrPlaceholder() while the image is still loading. |   495   // Call reloadIfLoFiOrPlaceholder() while the image is still loading. | 
|   496   cachedImage->reloadIfLoFiOrPlaceholder(fetcher); |   496   cachedImage->reloadIfLoFiOrPlaceholder(fetcher); | 
|   497   EXPECT_FALSE(cachedImage->errorOccurred()); |   497   EXPECT_FALSE(cachedImage->errorOccurred()); | 
|   498   EXPECT_FALSE(cachedImage->resourceBuffer()); |   498   EXPECT_FALSE(cachedImage->resourceBuffer()); | 
|   499   EXPECT_FALSE(cachedImage->hasImage()); |   499   EXPECT_FALSE(cachedImage->hasImage()); | 
|   500   EXPECT_EQ(2, client->imageChangedCount()); |   500   EXPECT_EQ(2, client->imageChangedCount()); | 
|   501   EXPECT_EQ(0U, client->encodedSizeOnLastImageChanged()); |   501   EXPECT_EQ(0U, client->encodedSizeOnLastImageChanged()); | 
|   502   // The client should not have been notified of completion yet, since the image |   502   // The client should not have been notified of completion yet, since the image | 
|   503   // is still loading. |   503   // is still loading. | 
|   504   EXPECT_FALSE(client->notifyFinishedCalled()); |   504   EXPECT_FALSE(client->notifyFinishedCalled()); | 
|   505  |   505  | 
|   506   cachedImage->loader()->didReceiveResponse( |   506   cachedImage->loader()->didReceiveResponse( | 
|   507       nullptr, |  | 
|   508       WrappedResourceResponse(ResourceResponse( |   507       WrappedResourceResponse(ResourceResponse( | 
|   509           testURL, "image/jpeg", sizeof(kJpegImage2), nullAtom, String())), |   508           testURL, "image/jpeg", sizeof(kJpegImage2), nullAtom, String())), | 
|   510       nullptr); |   509       nullptr); | 
|   511   cachedImage->loader()->didReceiveData( |   510   cachedImage->loader()->didReceiveData( | 
|   512       nullptr, reinterpret_cast<const char*>(kJpegImage2), sizeof(kJpegImage2), |   511       reinterpret_cast<const char*>(kJpegImage2), sizeof(kJpegImage2), | 
|   513       sizeof(kJpegImage2)); |   512       sizeof(kJpegImage2)); | 
|   514   cachedImage->loader()->didFinishLoading(nullptr, 0.0, sizeof(kJpegImage2), |   513   cachedImage->loader()->didFinishLoading(0.0, sizeof(kJpegImage2), | 
|   515                                           sizeof(kJpegImage2)); |   514                                           sizeof(kJpegImage2)); | 
|   516  |   515  | 
|   517   EXPECT_FALSE(cachedImage->errorOccurred()); |   516   EXPECT_FALSE(cachedImage->errorOccurred()); | 
|   518   ASSERT_TRUE(cachedImage->hasImage()); |   517   ASSERT_TRUE(cachedImage->hasImage()); | 
|   519   EXPECT_FALSE(cachedImage->getImage()->isNull()); |   518   EXPECT_FALSE(cachedImage->getImage()->isNull()); | 
|   520   EXPECT_EQ(sizeof(kJpegImage2), client->encodedSizeOnLastImageChanged()); |   519   EXPECT_EQ(sizeof(kJpegImage2), client->encodedSizeOnLastImageChanged()); | 
|   521   // The client should have been notified of completion only after the reload |   520   // The client should have been notified of completion only after the reload | 
|   522   // completed. |   521   // completed. | 
|   523   EXPECT_TRUE(client->notifyFinishedCalled()); |   522   EXPECT_TRUE(client->notifyFinishedCalled()); | 
|   524   EXPECT_EQ(sizeof(kJpegImage2), client->encodedSizeOnNotifyFinished()); |   523   EXPECT_EQ(sizeof(kJpegImage2), client->encodedSizeOnNotifyFinished()); | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
|   543   Persistent<MockImageResourceClient> client = |   542   Persistent<MockImageResourceClient> client = | 
|   544       new MockImageResourceClient(image); |   543       new MockImageResourceClient(image); | 
|   545  |   544  | 
|   546   ResourceResponse response(testURL, "image/jpeg", |   545   ResourceResponse response(testURL, "image/jpeg", | 
|   547                             kJpegImageSubrangeWithDimensionsLength, nullAtom, |   546                             kJpegImageSubrangeWithDimensionsLength, nullAtom, | 
|   548                             String()); |   547                             String()); | 
|   549   response.setHTTPStatusCode(206); |   548   response.setHTTPStatusCode(206); | 
|   550   response.setHTTPHeaderField( |   549   response.setHTTPHeaderField( | 
|   551       "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength, |   550       "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength, | 
|   552                                          sizeof(kJpegImage))); |   551                                          sizeof(kJpegImage))); | 
|   553   image->loader()->didReceiveResponse(nullptr, |   552   image->loader()->didReceiveResponse(WrappedResourceResponse(response)); | 
|   554                                       WrappedResourceResponse(response)); |   553   image->loader()->didReceiveData(reinterpret_cast<const char*>(kJpegImage), | 
|   555   image->loader()->didReceiveData(nullptr, |  | 
|   556                                   reinterpret_cast<const char*>(kJpegImage), |  | 
|   557                                   kJpegImageSubrangeWithDimensionsLength, |   554                                   kJpegImageSubrangeWithDimensionsLength, | 
|   558                                   kJpegImageSubrangeWithDimensionsLength); |   555                                   kJpegImageSubrangeWithDimensionsLength); | 
|   559   image->loader()->didFinishLoading(nullptr, 0.0, |   556   image->loader()->didFinishLoading(0.0, kJpegImageSubrangeWithDimensionsLength, | 
|   560                                     kJpegImageSubrangeWithDimensionsLength, |  | 
|   561                                     kJpegImageSubrangeWithDimensionsLength); |   557                                     kJpegImageSubrangeWithDimensionsLength); | 
|   562  |   558  | 
|   563   EXPECT_EQ(Resource::Cached, image->getStatus()); |   559   EXPECT_EQ(Resource::Cached, image->getStatus()); | 
|   564   EXPECT_TRUE(image->isPlaceholder()); |   560   EXPECT_TRUE(image->isPlaceholder()); | 
|   565  |   561  | 
|   566   image->reloadIfLoFiOrPlaceholder(fetcher); |   562   image->reloadIfLoFiOrPlaceholder(fetcher); | 
|   567  |   563  | 
|   568   EXPECT_EQ(Resource::Pending, image->getStatus()); |   564   EXPECT_EQ(Resource::Pending, image->getStatus()); | 
|   569   EXPECT_FALSE(image->isPlaceholder()); |   565   EXPECT_FALSE(image->isPlaceholder()); | 
|   570   EXPECT_EQ(nullAtom, image->resourceRequest().httpHeaderField("range")); |   566   EXPECT_EQ(nullAtom, image->resourceRequest().httpHeaderField("range")); | 
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   836 TEST(ImageResourceTest, CancelOnDecodeError) { |   832 TEST(ImageResourceTest, CancelOnDecodeError) { | 
|   837   KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); |   833   KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); | 
|   838   ScopedRegisteredURL scopedRegisteredURL(testURL); |   834   ScopedRegisteredURL scopedRegisteredURL(testURL); | 
|   839  |   835  | 
|   840   ResourceFetcher* fetcher = |   836   ResourceFetcher* fetcher = | 
|   841       ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); |   837       ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); | 
|   842   FetchRequest request(testURL, FetchInitiatorInfo()); |   838   FetchRequest request(testURL, FetchInitiatorInfo()); | 
|   843   ImageResource* cachedImage = ImageResource::fetch(request, fetcher); |   839   ImageResource* cachedImage = ImageResource::fetch(request, fetcher); | 
|   844  |   840  | 
|   845   cachedImage->loader()->didReceiveResponse( |   841   cachedImage->loader()->didReceiveResponse( | 
|   846       nullptr, WrappedResourceResponse(ResourceResponse( |   842       WrappedResourceResponse( | 
|   847                    testURL, "image/jpeg", 18, nullAtom, String())), |   843           ResourceResponse(testURL, "image/jpeg", 18, nullAtom, String())), | 
|   848       nullptr); |   844       nullptr); | 
|   849   cachedImage->loader()->didReceiveData(nullptr, "notactuallyanimage", 18, 18); |   845   cachedImage->loader()->didReceiveData("notactuallyanimage", 18, 18); | 
|   850   EXPECT_EQ(Resource::DecodeError, cachedImage->getStatus()); |   846   EXPECT_EQ(Resource::DecodeError, cachedImage->getStatus()); | 
|   851   EXPECT_FALSE(cachedImage->isLoading()); |   847   EXPECT_FALSE(cachedImage->isLoading()); | 
|   852 } |   848 } | 
|   853  |   849  | 
|   854 TEST(ImageResourceTest, FetchDisallowPlaceholder) { |   850 TEST(ImageResourceTest, FetchDisallowPlaceholder) { | 
|   855   KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); |   851   KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); | 
|   856   ScopedRegisteredURL scopedRegisteredURL(testURL); |   852   ScopedRegisteredURL scopedRegisteredURL(testURL); | 
|   857  |   853  | 
|   858   FetchRequest request(testURL, FetchInitiatorInfo()); |   854   FetchRequest request(testURL, FetchInitiatorInfo()); | 
|   859   ImageResource* image = ImageResource::fetch( |   855   ImageResource* image = ImageResource::fetch( | 
|   860       request, |   856       request, | 
|   861       ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); |   857       ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); | 
|   862   EXPECT_EQ(FetchRequest::DisallowPlaceholder, |   858   EXPECT_EQ(FetchRequest::DisallowPlaceholder, | 
|   863             request.placeholderImageRequestType()); |   859             request.placeholderImageRequestType()); | 
|   864   EXPECT_EQ(nullAtom, image->resourceRequest().httpHeaderField("range")); |   860   EXPECT_EQ(nullAtom, image->resourceRequest().httpHeaderField("range")); | 
|   865   EXPECT_FALSE(image->isPlaceholder()); |   861   EXPECT_FALSE(image->isPlaceholder()); | 
|   866   Persistent<MockImageResourceClient> client = |   862   Persistent<MockImageResourceClient> client = | 
|   867       new MockImageResourceClient(image); |   863       new MockImageResourceClient(image); | 
|   868  |   864  | 
|   869   image->loader()->didReceiveResponse( |   865   image->loader()->didReceiveResponse( | 
|   870       nullptr, |  | 
|   871       WrappedResourceResponse(ResourceResponse( |   866       WrappedResourceResponse(ResourceResponse( | 
|   872           testURL, "image/jpeg", sizeof(kJpegImage), nullAtom, String()))); |   867           testURL, "image/jpeg", sizeof(kJpegImage), nullAtom, String()))); | 
|   873   image->loader()->didReceiveData(nullptr, |   868   image->loader()->didReceiveData(reinterpret_cast<const char*>(kJpegImage), | 
|   874                                   reinterpret_cast<const char*>(kJpegImage), |  | 
|   875                                   sizeof(kJpegImage), sizeof(kJpegImage)); |   869                                   sizeof(kJpegImage), sizeof(kJpegImage)); | 
|   876   image->loader()->didFinishLoading(nullptr, 0.0, sizeof(kJpegImage), |   870   image->loader()->didFinishLoading(0.0, sizeof(kJpegImage), | 
|   877                                     sizeof(kJpegImage)); |   871                                     sizeof(kJpegImage)); | 
|   878  |   872  | 
|   879   EXPECT_EQ(Resource::Cached, image->getStatus()); |   873   EXPECT_EQ(Resource::Cached, image->getStatus()); | 
|   880   EXPECT_EQ(sizeof(kJpegImage), image->encodedSize()); |   874   EXPECT_EQ(sizeof(kJpegImage), image->encodedSize()); | 
|   881   EXPECT_FALSE(image->isPlaceholder()); |   875   EXPECT_FALSE(image->isPlaceholder()); | 
|   882   EXPECT_LT(0, client->imageChangedCount()); |   876   EXPECT_LT(0, client->imageChangedCount()); | 
|   883   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnLastImageChanged()); |   877   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnLastImageChanged()); | 
|   884   EXPECT_TRUE(client->notifyFinishedCalled()); |   878   EXPECT_TRUE(client->notifyFinishedCalled()); | 
|   885   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnNotifyFinished()); |   879   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnNotifyFinished()); | 
|   886   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnImageNotifyFinished()); |   880   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnImageNotifyFinished()); | 
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   959   Persistent<MockImageResourceClient> client = |   953   Persistent<MockImageResourceClient> client = | 
|   960       new MockImageResourceClient(image); |   954       new MockImageResourceClient(image); | 
|   961  |   955  | 
|   962   ResourceResponse response(testURL, "image/jpeg", |   956   ResourceResponse response(testURL, "image/jpeg", | 
|   963                             kJpegImageSubrangeWithDimensionsLength, nullAtom, |   957                             kJpegImageSubrangeWithDimensionsLength, nullAtom, | 
|   964                             String()); |   958                             String()); | 
|   965   response.setHTTPStatusCode(206); |   959   response.setHTTPStatusCode(206); | 
|   966   response.setHTTPHeaderField( |   960   response.setHTTPHeaderField( | 
|   967       "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength, |   961       "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength, | 
|   968                                          sizeof(kJpegImage))); |   962                                          sizeof(kJpegImage))); | 
|   969   image->loader()->didReceiveResponse(nullptr, |   963   image->loader()->didReceiveResponse(WrappedResourceResponse(response)); | 
|   970                                       WrappedResourceResponse(response)); |   964   image->loader()->didReceiveData(reinterpret_cast<const char*>(kJpegImage), | 
|   971   image->loader()->didReceiveData(nullptr, |  | 
|   972                                   reinterpret_cast<const char*>(kJpegImage), |  | 
|   973                                   kJpegImageSubrangeWithDimensionsLength, |   965                                   kJpegImageSubrangeWithDimensionsLength, | 
|   974                                   kJpegImageSubrangeWithDimensionsLength); |   966                                   kJpegImageSubrangeWithDimensionsLength); | 
|   975   image->loader()->didFinishLoading(nullptr, 0.0, |   967   image->loader()->didFinishLoading(0.0, kJpegImageSubrangeWithDimensionsLength, | 
|   976                                     kJpegImageSubrangeWithDimensionsLength, |  | 
|   977                                     kJpegImageSubrangeWithDimensionsLength); |   968                                     kJpegImageSubrangeWithDimensionsLength); | 
|   978  |   969  | 
|   979   EXPECT_EQ(Resource::Cached, image->getStatus()); |   970   EXPECT_EQ(Resource::Cached, image->getStatus()); | 
|   980   EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength, image->encodedSize()); |   971   EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength, image->encodedSize()); | 
|   981   EXPECT_TRUE(image->isPlaceholder()); |   972   EXPECT_TRUE(image->isPlaceholder()); | 
|   982   EXPECT_LT(0, client->imageChangedCount()); |   973   EXPECT_LT(0, client->imageChangedCount()); | 
|   983   EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength, |   974   EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength, | 
|   984             client->encodedSizeOnLastImageChanged()); |   975             client->encodedSizeOnLastImageChanged()); | 
|   985   EXPECT_TRUE(client->notifyFinishedCalled()); |   976   EXPECT_TRUE(client->notifyFinishedCalled()); | 
|   986   EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength, |   977   EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength, | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
|  1007   EXPECT_EQ(FetchRequest::AllowPlaceholder, |   998   EXPECT_EQ(FetchRequest::AllowPlaceholder, | 
|  1008             request.placeholderImageRequestType()); |   999             request.placeholderImageRequestType()); | 
|  1009   EXPECT_EQ("bytes=0-2047", image->resourceRequest().httpHeaderField("range")); |  1000   EXPECT_EQ("bytes=0-2047", image->resourceRequest().httpHeaderField("range")); | 
|  1010   EXPECT_TRUE(image->isPlaceholder()); |  1001   EXPECT_TRUE(image->isPlaceholder()); | 
|  1011   Persistent<MockImageResourceClient> client = |  1002   Persistent<MockImageResourceClient> client = | 
|  1012       new MockImageResourceClient(image); |  1003       new MockImageResourceClient(image); | 
|  1013  |  1004  | 
|  1014   const char kBadData[] = "notanimageresponse"; |  1005   const char kBadData[] = "notanimageresponse"; | 
|  1015  |  1006  | 
|  1016   image->loader()->didReceiveResponse( |  1007   image->loader()->didReceiveResponse( | 
|  1017       nullptr, |  | 
|  1018       WrappedResourceResponse(ResourceResponse( |  1008       WrappedResourceResponse(ResourceResponse( | 
|  1019           testURL, "image/jpeg", sizeof(kBadData), nullAtom, String()))); |  1009           testURL, "image/jpeg", sizeof(kBadData), nullAtom, String()))); | 
|  1020   image->loader()->didReceiveData(nullptr, kBadData, sizeof(kBadData), |  1010   image->loader()->didReceiveData(kBadData, sizeof(kBadData), sizeof(kBadData)); | 
|  1021                                   sizeof(kBadData)); |  | 
|  1022  |  1011  | 
|  1023   // The dimensions could not be extracted, so the full original image should be |  1012   // The dimensions could not be extracted, so the full original image should be | 
|  1024   // loading. |  1013   // loading. | 
|  1025   EXPECT_EQ(Resource::Pending, image->getStatus()); |  1014   EXPECT_EQ(Resource::Pending, image->getStatus()); | 
|  1026   EXPECT_FALSE(image->isPlaceholder()); |  1015   EXPECT_FALSE(image->isPlaceholder()); | 
|  1027   EXPECT_EQ(nullAtom, image->resourceRequest().httpHeaderField("range")); |  1016   EXPECT_EQ(nullAtom, image->resourceRequest().httpHeaderField("range")); | 
|  1028   EXPECT_EQ(static_cast<int>(WebCachePolicy::BypassingCache), |  1017   EXPECT_EQ(static_cast<int>(WebCachePolicy::BypassingCache), | 
|  1029             static_cast<int>(image->resourceRequest().getCachePolicy())); |  1018             static_cast<int>(image->resourceRequest().getCachePolicy())); | 
|  1030   EXPECT_FALSE(client->notifyFinishedCalled()); |  1019   EXPECT_FALSE(client->notifyFinishedCalled()); | 
|  1031  |  1020  | 
|  1032   image->loader()->didReceiveResponse( |  1021   image->loader()->didReceiveResponse( | 
|  1033       nullptr, |  | 
|  1034       WrappedResourceResponse(ResourceResponse( |  1022       WrappedResourceResponse(ResourceResponse( | 
|  1035           testURL, "image/jpeg", sizeof(kJpegImage), nullAtom, String()))); |  1023           testURL, "image/jpeg", sizeof(kJpegImage), nullAtom, String()))); | 
|  1036   image->loader()->didReceiveData(nullptr, |  1024   image->loader()->didReceiveData(reinterpret_cast<const char*>(kJpegImage), | 
|  1037                                   reinterpret_cast<const char*>(kJpegImage), |  | 
|  1038                                   sizeof(kJpegImage), sizeof(kJpegImage)); |  1025                                   sizeof(kJpegImage), sizeof(kJpegImage)); | 
|  1039   image->loader()->didFinishLoading(nullptr, 0.0, sizeof(kJpegImage), |  1026   image->loader()->didFinishLoading(0.0, sizeof(kJpegImage), | 
|  1040                                     sizeof(kJpegImage)); |  1027                                     sizeof(kJpegImage)); | 
|  1041  |  1028  | 
|  1042   EXPECT_EQ(Resource::Cached, image->getStatus()); |  1029   EXPECT_EQ(Resource::Cached, image->getStatus()); | 
|  1043   EXPECT_EQ(sizeof(kJpegImage), image->encodedSize()); |  1030   EXPECT_EQ(sizeof(kJpegImage), image->encodedSize()); | 
|  1044   EXPECT_FALSE(image->isPlaceholder()); |  1031   EXPECT_FALSE(image->isPlaceholder()); | 
|  1045   EXPECT_LT(0, client->imageChangedCount()); |  1032   EXPECT_LT(0, client->imageChangedCount()); | 
|  1046   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnLastImageChanged()); |  1033   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnLastImageChanged()); | 
|  1047   EXPECT_TRUE(client->notifyFinishedCalled()); |  1034   EXPECT_TRUE(client->notifyFinishedCalled()); | 
|  1048   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnNotifyFinished()); |  1035   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnNotifyFinished()); | 
|  1049   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnImageNotifyFinished()); |  1036   EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnImageNotifyFinished()); | 
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1093   Persistent<MockImageResourceClient> client = |  1080   Persistent<MockImageResourceClient> client = | 
|  1094       new MockImageResourceClient(image); |  1081       new MockImageResourceClient(image); | 
|  1095  |  1082  | 
|  1096   ResourceResponse response(testURL, "image/jpeg", |  1083   ResourceResponse response(testURL, "image/jpeg", | 
|  1097                             kJpegImageSubrangeWithDimensionsLength, nullAtom, |  1084                             kJpegImageSubrangeWithDimensionsLength, nullAtom, | 
|  1098                             String()); |  1085                             String()); | 
|  1099   response.setHTTPStatusCode(206); |  1086   response.setHTTPStatusCode(206); | 
|  1100   response.setHTTPHeaderField( |  1087   response.setHTTPHeaderField( | 
|  1101       "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength, |  1088       "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength, | 
|  1102                                          sizeof(kJpegImage))); |  1089                                          sizeof(kJpegImage))); | 
|  1103   image->loader()->didReceiveResponse(nullptr, |  1090   image->loader()->didReceiveResponse(WrappedResourceResponse(response)); | 
|  1104                                       WrappedResourceResponse(response)); |  1091   image->loader()->didReceiveData(reinterpret_cast<const char*>(kJpegImage), | 
|  1105   image->loader()->didReceiveData(nullptr, |  | 
|  1106                                   reinterpret_cast<const char*>(kJpegImage), |  | 
|  1107                                   kJpegImageSubrangeWithDimensionsLength, |  1092                                   kJpegImageSubrangeWithDimensionsLength, | 
|  1108                                   kJpegImageSubrangeWithDimensionsLength); |  1093                                   kJpegImageSubrangeWithDimensionsLength); | 
|  1109   image->loader()->didFinishLoading(nullptr, 0.0, |  1094   image->loader()->didFinishLoading(0.0, kJpegImageSubrangeWithDimensionsLength, | 
|  1110                                     kJpegImageSubrangeWithDimensionsLength, |  | 
|  1111                                     kJpegImageSubrangeWithDimensionsLength); |  1095                                     kJpegImageSubrangeWithDimensionsLength); | 
|  1112  |  1096  | 
|  1113   EXPECT_EQ(Resource::Cached, image->getStatus()); |  1097   EXPECT_EQ(Resource::Cached, image->getStatus()); | 
|  1114   EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength, image->encodedSize()); |  1098   EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength, image->encodedSize()); | 
|  1115   EXPECT_TRUE(image->isPlaceholder()); |  1099   EXPECT_TRUE(image->isPlaceholder()); | 
|  1116   EXPECT_LT(0, client->imageChangedCount()); |  1100   EXPECT_LT(0, client->imageChangedCount()); | 
|  1117   EXPECT_TRUE(client->notifyFinishedCalled()); |  1101   EXPECT_TRUE(client->notifyFinishedCalled()); | 
|  1118  |  1102  | 
|  1119   FetchRequest nonPlaceholderRequest(testURL, FetchInitiatorInfo()); |  1103   FetchRequest nonPlaceholderRequest(testURL, FetchInitiatorInfo()); | 
|  1120   ImageResource* secondImage = |  1104   ImageResource* secondImage = | 
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1210   EXPECT_TRUE(client->notifyFinishedCalled()); |  1194   EXPECT_TRUE(client->notifyFinishedCalled()); | 
|  1211   EXPECT_TRUE(cachedImage->getImage()->isBitmapImage()); |  1195   EXPECT_TRUE(cachedImage->getImage()->isBitmapImage()); | 
|  1212   EXPECT_EQ(50, cachedImage->getImage()->width()); |  1196   EXPECT_EQ(50, cachedImage->getImage()->width()); | 
|  1213   EXPECT_EQ(50, cachedImage->getImage()->height()); |  1197   EXPECT_EQ(50, cachedImage->getImage()->height()); | 
|  1214  |  1198  | 
|  1215   WTF::setTimeFunctionsForTesting(nullptr); |  1199   WTF::setTimeFunctionsForTesting(nullptr); | 
|  1216 } |  1200 } | 
|  1217  |  1201  | 
|  1218 }  // namespace |  1202 }  // namespace | 
|  1219 }  // namespace blink |  1203 }  // namespace blink | 
| OLD | NEW |