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: Source/core/css/resolver/StyleResourceLoader.cpp

Issue 137983010: (Re)organize handling of CORS access control during resource loading. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: HTMLImportLoader no longer needs a ResourceFetcher Created 6 years, 11 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
« no previous file with comments | « Source/core/css/CSSImageValue.cpp ('k') | Source/core/dom/ScriptLoader.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
4 * Copyright (C) 2013 Google Inc. All rights reserved. 4 * Copyright (C) 2013 Google Inc. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 DocumentResource* resource = value->load(m_fetcher); 63 DocumentResource* resource = value->load(m_fetcher);
64 if (!resource) 64 if (!resource)
65 continue; 65 continue;
66 66
67 // Stash the DocumentResource on the reference filter. 67 // Stash the DocumentResource on the reference filter.
68 ReferenceFilterBuilder::setDocumentResourceReference(referenceFilter , adoptPtr(new DocumentResourceReference(resource))); 68 ReferenceFilterBuilder::setDocumentResourceReference(referenceFilter , adoptPtr(new DocumentResourceReference(resource)));
69 } 69 }
70 } 70 }
71 } 71 }
72 72
73 static PassRefPtr<StyleImage> doLoadPendingImage(ResourceFetcher* fetcher, Style PendingImage* pendingImage, float deviceScaleFactor, const ResourceLoaderOptions & options, CORSEnabled corsEnabled) 73 static PassRefPtr<StyleImage> doLoadPendingImage(ResourceFetcher* fetcher, Style PendingImage* pendingImage, float deviceScaleFactor, const ResourceLoaderOptions & options)
74 { 74 {
75 if (CSSImageValue* imageValue = pendingImage->cssImageValue()) 75 if (CSSImageValue* imageValue = pendingImage->cssImageValue())
76 return imageValue->cachedImage(fetcher, options, corsEnabled); 76 return imageValue->cachedImage(fetcher, options);
77 77
78 if (CSSImageGeneratorValue* imageGeneratorValue 78 if (CSSImageGeneratorValue* imageGeneratorValue
79 = pendingImage->cssImageGeneratorValue()) { 79 = pendingImage->cssImageGeneratorValue()) {
80 imageGeneratorValue->loadSubimages(fetcher); 80 imageGeneratorValue->loadSubimages(fetcher);
81 return StyleGeneratedImage::create(imageGeneratorValue); 81 return StyleGeneratedImage::create(imageGeneratorValue);
82 } 82 }
83 83
84 if (CSSCursorImageValue* cursorImageValue 84 if (CSSCursorImageValue* cursorImageValue
85 = pendingImage->cssCursorImageValue()) 85 = pendingImage->cssCursorImageValue())
86 return cursorImageValue->cachedImage(fetcher, deviceScaleFactor); 86 return cursorImageValue->cachedImage(fetcher, deviceScaleFactor);
87 87
88 if (CSSImageSetValue* imageSetValue = pendingImage->cssImageSetValue()) 88 if (CSSImageSetValue* imageSetValue = pendingImage->cssImageSetValue())
89 return imageSetValue->cachedImageSet(fetcher, deviceScaleFactor, options , corsEnabled); 89 return imageSetValue->cachedImageSet(fetcher, deviceScaleFactor, options );
90 90
91 return 0; 91 return 0;
92 } 92 }
93 93
94 PassRefPtr<StyleImage> StyleResourceLoader::loadPendingImage(StylePendingImage* pendingImage, float deviceScaleFactor) 94 PassRefPtr<StyleImage> StyleResourceLoader::loadPendingImage(StylePendingImage* pendingImage, float deviceScaleFactor)
95 { 95 {
96 return doLoadPendingImage(m_fetcher, pendingImage, deviceScaleFactor, Resour ceFetcher::defaultResourceOptions(), NotCORSEnabled); 96 return doLoadPendingImage(m_fetcher, pendingImage, deviceScaleFactor, Resour ceFetcher::defaultResourceOptions());
97 } 97 }
98 98
99 void StyleResourceLoader::loadPendingShapeImage(RenderStyle* renderStyle, ShapeV alue* shapeValue, float deviceScaleFactor) 99 void StyleResourceLoader::loadPendingShapeImage(RenderStyle* renderStyle, ShapeV alue* shapeValue, float deviceScaleFactor)
100 { 100 {
101 if (!shapeValue) 101 if (!shapeValue)
102 return; 102 return;
103 103
104 StyleImage* image = shapeValue->image(); 104 StyleImage* image = shapeValue->image();
105 if (!image || !image->isPendingImage()) 105 if (!image || !image->isPendingImage())
106 return; 106 return;
107 107
108 ResourceLoaderOptions options = ResourceFetcher::defaultResourceOptions(); 108 ResourceLoaderOptions options = ResourceFetcher::defaultResourceOptions();
109 options.allowCredentials = DoNotAllowStoredCredentials; 109 options.allowCredentials = DoNotAllowStoredCredentials;
110 options.corsEnabled = IsCORSEnabled;
110 111
111 shapeValue->setImage(doLoadPendingImage(m_fetcher, toStylePendingImage(image ), deviceScaleFactor, options, PotentiallyCORSEnabled)); 112 shapeValue->setImage(doLoadPendingImage(m_fetcher, toStylePendingImage(image ), deviceScaleFactor, options));
112 } 113 }
113 114
114 void StyleResourceLoader::loadPendingImages(RenderStyle* style, const ElementSty leResources& elementStyleResources) 115 void StyleResourceLoader::loadPendingImages(RenderStyle* style, const ElementSty leResources& elementStyleResources)
115 { 116 {
116 if (elementStyleResources.pendingImageProperties().isEmpty()) 117 if (elementStyleResources.pendingImageProperties().isEmpty())
117 return; 118 return;
118 119
119 PendingImagePropertyMap::const_iterator::Keys end = elementStyleResources.pe ndingImageProperties().end().keys(); 120 PendingImagePropertyMap::const_iterator::Keys end = elementStyleResources.pe ndingImageProperties().end().keys();
120 for (PendingImagePropertyMap::const_iterator::Keys it = elementStyleResource s.pendingImageProperties().begin().keys(); it != end; ++it) { 121 for (PendingImagePropertyMap::const_iterator::Keys it = elementStyleResource s.pendingImageProperties().begin().keys(); it != end; ++it) {
121 CSSPropertyID currentProperty = *it; 122 CSSPropertyID currentProperty = *it;
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 void StyleResourceLoader::loadPendingResources(RenderStyle* renderStyle, Element StyleResources& elementStyleResources) 201 void StyleResourceLoader::loadPendingResources(RenderStyle* renderStyle, Element StyleResources& elementStyleResources)
201 { 202 {
202 // Start loading images referenced by this style. 203 // Start loading images referenced by this style.
203 loadPendingImages(renderStyle, elementStyleResources); 204 loadPendingImages(renderStyle, elementStyleResources);
204 205
205 // Start loading the SVG Documents referenced by this style. 206 // Start loading the SVG Documents referenced by this style.
206 loadPendingSVGDocuments(renderStyle, elementStyleResources); 207 loadPendingSVGDocuments(renderStyle, elementStyleResources);
207 } 208 }
208 209
209 } 210 }
OLDNEW
« no previous file with comments | « Source/core/css/CSSImageValue.cpp ('k') | Source/core/dom/ScriptLoader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698