Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(348)

Side by Side Diff: third_party/WebKit/Source/core/fetch/ImageResource.h

Issue 2054643003: Remove duplication of encoded image data (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Refactoring Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de)
3 Copyright (C) 2001 Dirk Mueller <mueller@kde.org> 3 Copyright (C) 2001 Dirk Mueller <mueller@kde.org>
4 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) 4 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
5 Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. 5 Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved.
6 6
7 This library is free software; you can redistribute it and/or 7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Library General Public 8 modify it under the terms of the GNU Library General Public
9 License as published by the Free Software Foundation; either 9 License as published by the Free Software Foundation; either
10 version 2 of the License, or (at your option) any later version. 10 version 2 of the License, or (at your option) any later version.
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 void reloadIfLoFi(ResourceFetcher*); 92 void reloadIfLoFi(ResourceFetcher*);
93 93
94 void addObserver(ImageResourceObserver*); 94 void addObserver(ImageResourceObserver*);
95 void removeObserver(ImageResourceObserver*); 95 void removeObserver(ImageResourceObserver*);
96 bool hasClientsOrObservers() const override { return Resource::hasClientsOrO bservers() || !m_observers.isEmpty() || !m_finishedObservers.isEmpty(); } 96 bool hasClientsOrObservers() const override { return Resource::hasClientsOrO bservers() || !m_observers.isEmpty() || !m_finishedObservers.isEmpty(); }
97 97
98 ResourcePriority priorityFromObservers() override; 98 ResourcePriority priorityFromObservers() override;
99 99
100 void allClientsAndObserversRemoved() override; 100 void allClientsAndObserversRemoved() override;
101 101
102 PassRefPtr<SharedBuffer> resourceBuffer() const override;
102 void appendData(const char*, size_t) override; 103 void appendData(const char*, size_t) override;
103 void error(const ResourceError&) override; 104 void error(const ResourceError&) override;
104 void responseReceived(const ResourceResponse&, std::unique_ptr<WebDataConsum erHandle>) override; 105 void responseReceived(const ResourceResponse&, std::unique_ptr<WebDataConsum erHandle>) override;
105 void finish(double finishTime = 0.0) override; 106 void finish(double finishTime = 0.0) override;
106 107
107 // For compatibility, images keep loading even if there are HTTP errors. 108 // For compatibility, images keep loading even if there are HTTP errors.
108 bool shouldIgnoreHTTPStatusCodeErrors() const override { return true; } 109 bool shouldIgnoreHTTPStatusCodeErrors() const override { return true; }
109 110
110 bool isImage() const override { return true; } 111 bool isImage() const override { return true; }
111 112
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 { 147 {
147 return new ImageResource(request, options); 148 return new ImageResource(request, options);
148 } 149 }
149 }; 150 };
150 ImageResource(const ResourceRequest&, const ResourceLoaderOptions&); 151 ImageResource(const ResourceRequest&, const ResourceLoaderOptions&);
151 152
152 void clear(); 153 void clear();
153 154
154 void createImage(); 155 void createImage();
155 void updateImage(bool allDataReceived); 156 void updateImage(bool allDataReceived);
156 void updateImageAndClearBuffer();
157 void clearImage();
158 // If not null, changeRect is the changed part of the image. 157 // If not null, changeRect is the changed part of the image.
159 void notifyObservers(const IntRect* changeRect = nullptr); 158 void notifyObservers(const IntRect* changeRect = nullptr);
160 159
161 void checkNotify() override; 160 void checkNotify() override;
162 void markClientsAndObserversFinished() override; 161 void markClientsAndObserversFinished() override;
163 162
164 void doResetAnimation(); 163 void doResetAnimation();
165 164
166 float m_devicePixelRatioHeaderValue; 165 float m_devicePixelRatioHeaderValue;
167 166
168 Member<MultipartImageResourceParser> m_multipartParser; 167 Member<MultipartImageResourceParser> m_multipartParser;
169 RefPtr<blink::Image> m_image; 168 RefPtr<blink::Image> m_image;
170 MultipartParsingState m_multipartParsingState = MultipartParsingState::Waiti ngForFirstPart; 169 MultipartParsingState m_multipartParsingState = MultipartParsingState::Waiti ngForFirstPart;
171 bool m_hasDevicePixelRatioHeaderValue; 170 bool m_hasDevicePixelRatioHeaderValue;
172 HashCountedSet<ImageResourceObserver*> m_observers; 171 HashCountedSet<ImageResourceObserver*> m_observers;
173 HashCountedSet<ImageResourceObserver*> m_finishedObservers; 172 HashCountedSet<ImageResourceObserver*> m_finishedObservers;
174 }; 173 };
175 174
176 DEFINE_RESOURCE_TYPE_CASTS(Image); 175 DEFINE_RESOURCE_TYPE_CASTS(Image);
177 176
178 } // namespace blink 177 } // namespace blink
179 178
180 #endif 179 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698