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

Side by Side Diff: Source/core/fetch/ResourceLoader.cpp

Issue 728453002: Drop needless self protections from ResourceLoader. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 1 month 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 | « no previous file | no next file » | 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) 2006, 2007, 2010, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2010, 2011 Apple Inc. All rights reserved.
3 * (C) 2007 Graham Dennis (graham.dennis@gmail.com) 3 * (C) 2007 Graham Dennis (graham.dennis@gmail.com)
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 m_host->didLoadResource(); 106 m_host->didLoadResource();
107 if (m_state == Terminated) 107 if (m_state == Terminated)
108 return; 108 return;
109 m_resource->clearLoader(); 109 m_resource->clearLoader();
110 m_resource->deleteIfPossible(); 110 m_resource->deleteIfPossible();
111 m_resource = nullptr; 111 m_resource = nullptr;
112 m_host->willTerminateResourceLoader(this); 112 m_host->willTerminateResourceLoader(this);
113 113
114 ASSERT(m_state != Terminated); 114 ASSERT(m_state != Terminated);
115 115
116 // It's possible that when we release the loader, it will be
117 // deallocated and release the last reference to this object.
118 // We need to retain to avoid accessing the object after it
119 // has been deallocated and also to avoid reentering this method.
120 RefPtrWillBeRawPtr<ResourceLoader> protector(this);
121
122 m_host.clear();
123 m_state = Terminated; 116 m_state = Terminated;
124
125 if (m_loader) { 117 if (m_loader) {
126 m_loader->cancel(); 118 m_loader->cancel();
127 m_loader.clear(); 119 m_loader.clear();
128 } 120 }
129
130 m_deferredRequest = ResourceRequest(); 121 m_deferredRequest = ResourceRequest();
122 m_host.clear();
131 } 123 }
132 124
133 void ResourceLoader::init(const ResourceRequest& passedRequest) 125 void ResourceLoader::init(const ResourceRequest& passedRequest)
134 { 126 {
135 ASSERT(m_state != Terminated); 127 ASSERT(m_state != Terminated);
136 ResourceRequest request(passedRequest); 128 ResourceRequest request(passedRequest);
137 m_host->willSendRequest(m_resource->identifier(), request, ResourceResponse( ), m_options.initiatorInfo); 129 m_host->willSendRequest(m_resource->identifier(), request, ResourceResponse( ), m_options.initiatorInfo);
138 ASSERT(m_state != Terminated); 130 ASSERT(m_state != Terminated);
139 ASSERT(!request.isNull()); 131 ASSERT(!request.isNull());
140 m_originalRequest = m_request = applyOptions(request); 132 m_originalRequest = m_request = applyOptions(request);
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 void ResourceLoader::didReceiveCachedMetadata(blink::WebURLLoader*, const char* data, int length) 321 void ResourceLoader::didReceiveCachedMetadata(blink::WebURLLoader*, const char* data, int length)
330 { 322 {
331 RELEASE_ASSERT(m_connectionState == ConnectionStateReceivedResponse || m_con nectionState == ConnectionStateReceivingData); 323 RELEASE_ASSERT(m_connectionState == ConnectionStateReceivedResponse || m_con nectionState == ConnectionStateReceivingData);
332 ASSERT(m_state == Initialized); 324 ASSERT(m_state == Initialized);
333 m_resource->setSerializedCachedMetadata(data, length); 325 m_resource->setSerializedCachedMetadata(data, length);
334 } 326 }
335 327
336 void ResourceLoader::didSendData(blink::WebURLLoader*, unsigned long long bytesS ent, unsigned long long totalBytesToBeSent) 328 void ResourceLoader::didSendData(blink::WebURLLoader*, unsigned long long bytesS ent, unsigned long long totalBytesToBeSent)
337 { 329 {
338 ASSERT(m_state == Initialized); 330 ASSERT(m_state == Initialized);
339 RefPtrWillBeRawPtr<ResourceLoader> protect(this);
340 m_resource->didSendData(bytesSent, totalBytesToBeSent); 331 m_resource->didSendData(bytesSent, totalBytesToBeSent);
341 } 332 }
342 333
343 bool ResourceLoader::responseNeedsAccessControlCheck() const 334 bool ResourceLoader::responseNeedsAccessControlCheck() const
344 { 335 {
345 // If the fetch was (potentially) CORS enabled, an access control check of t he response is required. 336 // If the fetch was (potentially) CORS enabled, an access control check of t he response is required.
346 return m_options.corsEnabled == IsCORSEnabled; 337 return m_options.corsEnabled == IsCORSEnabled;
347 } 338 }
348 339
349 void ResourceLoader::didReceiveResponse(blink::WebURLLoader*, const blink::WebUR LResponse& response, WebDataConsumerHandle* rawHandle) 340 void ResourceLoader::didReceiveResponse(blink::WebURLLoader*, const blink::WebUR LResponse& response, WebDataConsumerHandle* rawHandle)
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 m_requestCountTracker.clear(); 554 m_requestCountTracker.clear();
564 } 555 }
565 556
566 ResourceRequest& ResourceLoader::applyOptions(ResourceRequest& request) const 557 ResourceRequest& ResourceLoader::applyOptions(ResourceRequest& request) const
567 { 558 {
568 request.setAllowStoredCredentials(m_options.allowCredentials == AllowStoredC redentials); 559 request.setAllowStoredCredentials(m_options.allowCredentials == AllowStoredC redentials);
569 return request; 560 return request;
570 } 561 }
571 562
572 } 563 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698