| Index: ios/web/webui/crw_web_ui_page_builder.mm
|
| diff --git a/ios/web/webui/crw_web_ui_page_builder.mm b/ios/web/webui/crw_web_ui_page_builder.mm
|
| index 2842b64dbcb1e844addffe74a9847071828338f0..fd44ed6e089a2dbde8426221ecec852f552e2f0f 100644
|
| --- a/ios/web/webui/crw_web_ui_page_builder.mm
|
| +++ b/ios/web/webui/crw_web_ui_page_builder.mm
|
| @@ -8,12 +8,15 @@
|
| #include <string>
|
| #include <vector>
|
|
|
| -#include "base/ios/weak_nsobject.h"
|
| #include "base/logging.h"
|
| #include "base/mac/bundle_locations.h"
|
| #include "base/mac/scoped_nsobject.h"
|
| #include "base/strings/sys_string_conversions.h"
|
|
|
| +#if !defined(__has_feature) || !__has_feature(objc_arc)
|
| +#error "This file requires ARC support."
|
| +#endif
|
| +
|
| namespace {
|
| // Prefix for script tags. Used to locate JavaScript subresources.
|
| NSString* const kJSTagPrefix = @"<script src=\"";
|
| @@ -92,7 +95,7 @@ NSString* const kWebUIJSURL = @"chrome://resources/js/ios/web_ui.js";
|
|
|
| @implementation CRWWebUIPageBuilder {
|
| // Delegate for requesting resources.
|
| - base::WeakNSProtocol<id<CRWWebUIPageBuilderDelegate>> _delegate;
|
| + __weak id<CRWWebUIPageBuilderDelegate> _delegate;
|
| }
|
|
|
| #pragma mark - Public Methods
|
| @@ -104,7 +107,7 @@ NSString* const kWebUIJSURL = @"chrome://resources/js/ios/web_ui.js";
|
|
|
| - (instancetype)initWithDelegate:(id<CRWWebUIPageBuilderDelegate>)delegate {
|
| if (self = [super init]) {
|
| - _delegate.reset(delegate);
|
| + _delegate = delegate;
|
| }
|
| return self;
|
| }
|
| @@ -132,10 +135,11 @@ NSString* const kWebUIJSURL = @"chrome://resources/js/ios/web_ui.js";
|
| return;
|
| }
|
| __block std::map<GURL, std::string> subresources;
|
| - base::WeakNSObject<CRWWebUIPageBuilder> weakSelf(self);
|
| + __weak CRWWebUIPageBuilder* weakSelf = self;
|
| // Completion handler for subresource loads.
|
| - __block web::WebUIDelegateCompletion subresourceHandler = nil;
|
| - subresourceHandler = [[^(NSString* subresource, const GURL& subresourceURL) {
|
| + web::WebUIDelegateCompletion subresourceHandler = nil;
|
| + __block __weak web::WebUIDelegateCompletion weakSubresourceHandler = nil;
|
| + subresourceHandler = [^(NSString* subresource, const GURL& subresourceURL) {
|
| // Import statements in CSS resources are also loaded.
|
| if ([self isCSSSubresourceURL:subresourceURL]) {
|
| NSSet* URLStrings = [weakSelf URLStringsFromCSS:subresource];
|
| @@ -146,7 +150,7 @@ NSString* const kWebUIJSURL = @"chrome://resources/js/ios/web_ui.js";
|
| sourceURL:subresourceURL];
|
| ++pendingSubresourceCount;
|
| [weakSelf fetchResourceWithURL:URL
|
| - completionHandler:subresourceHandler];
|
| + completionHandler:weakSubresourceHandler];
|
| }
|
| }
|
| subresources[subresourceURL] = base::SysNSStringToUTF8(subresource);
|
| @@ -157,7 +161,9 @@ NSString* const kWebUIJSURL = @"chrome://resources/js/ios/web_ui.js";
|
| [weakSelf flattenHTML:webUIHTML withSubresources:subresources];
|
| completionHandler(webUIHTML);
|
| }
|
| - } copy] autorelease];
|
| + } copy];
|
| +
|
| + weakSubresourceHandler = subresourceHandler;
|
|
|
| for (NSString* URLString in subresourceURLStrings) {
|
| // chrome://resources/js/ios/web_ui.js is skipped because it is
|
|
|