| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import "ios/web/webui/crw_web_ui_manager.h" | 5 #import "ios/web/webui/crw_web_ui_manager.h" |
| 6 | 6 |
| 7 #include <memory> |
| 8 #include <vector> |
| 9 |
| 7 #include "base/json/string_escape.h" | 10 #include "base/json/string_escape.h" |
| 8 #import "base/mac/bind_objc_block.h" | 11 #import "base/mac/bind_objc_block.h" |
| 9 #import "base/mac/scoped_nsobject.h" | 12 #import "base/mac/scoped_nsobject.h" |
| 13 #include "base/memory/ptr_util.h" |
| 10 #include "base/memory/ref_counted_memory.h" | 14 #include "base/memory/ref_counted_memory.h" |
| 11 #include "base/memory/scoped_vector.h" | |
| 12 #include "base/strings/stringprintf.h" | 15 #include "base/strings/stringprintf.h" |
| 13 #import "base/strings/sys_string_conversions.h" | 16 #import "base/strings/sys_string_conversions.h" |
| 14 #include "base/strings/utf_string_conversions.h" | 17 #include "base/strings/utf_string_conversions.h" |
| 15 #include "base/values.h" | 18 #include "base/values.h" |
| 16 #include "ios/web/grit/ios_web_resources.h" | 19 #include "ios/web/grit/ios_web_resources.h" |
| 17 #import "ios/web/net/request_group_util.h" | 20 #import "ios/web/net/request_group_util.h" |
| 18 #include "ios/web/public/browser_state.h" | 21 #include "ios/web/public/browser_state.h" |
| 19 #import "ios/web/public/web_client.h" | 22 #import "ios/web/public/web_client.h" |
| 20 #import "ios/web/public/web_state/web_state_observer_bridge.h" | 23 #import "ios/web/public/web_state/web_state_observer_bridge.h" |
| 21 #import "ios/web/web_state/web_state_impl.h" | 24 #import "ios/web/web_state/web_state_impl.h" |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 // Removes favicon callback from web state. | 65 // Removes favicon callback from web state. |
| 63 - (void)resetWebState; | 66 - (void)resetWebState; |
| 64 | 67 |
| 65 // Removes fetcher from vector of active fetchers. | 68 // Removes fetcher from vector of active fetchers. |
| 66 - (void)removeFetcher:(web::URLFetcherBlockAdapter*)fetcher; | 69 - (void)removeFetcher:(web::URLFetcherBlockAdapter*)fetcher; |
| 67 | 70 |
| 68 @end | 71 @end |
| 69 | 72 |
| 70 @implementation CRWWebUIManager { | 73 @implementation CRWWebUIManager { |
| 71 // Set of live WebUI fetchers for retrieving data. | 74 // Set of live WebUI fetchers for retrieving data. |
| 72 ScopedVector<web::URLFetcherBlockAdapter> _fetchers; | 75 std::vector<std::unique_ptr<web::URLFetcherBlockAdapter>> _fetchers; |
| 73 // Bridge to observe the web state from Objective-C. | 76 // Bridge to observe the web state from Objective-C. |
| 74 std::unique_ptr<web::WebStateObserverBridge> _webStateObserverBridge; | 77 std::unique_ptr<web::WebStateObserverBridge> _webStateObserverBridge; |
| 75 // Weak WebStateImpl this CRWWebUIManager is associated with. | 78 // Weak WebStateImpl this CRWWebUIManager is associated with. |
| 76 web::WebStateImpl* _webState; | 79 web::WebStateImpl* _webState; |
| 77 } | 80 } |
| 78 | 81 |
| 79 - (instancetype)init { | 82 - (instancetype)init { |
| 80 NOTREACHED(); | 83 NOTREACHED(); |
| 81 return self; | 84 return self; |
| 82 } | 85 } |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 286 _webState->RemoveScriptCommandCallback(kScriptCommandPrefix); | 289 _webState->RemoveScriptCommandCallback(kScriptCommandPrefix); |
| 287 } | 290 } |
| 288 _webState = nullptr; | 291 _webState = nullptr; |
| 289 } | 292 } |
| 290 | 293 |
| 291 - (web::WebStateImpl*)webState { | 294 - (web::WebStateImpl*)webState { |
| 292 return _webState; | 295 return _webState; |
| 293 } | 296 } |
| 294 | 297 |
| 295 - (void)removeFetcher:(web::URLFetcherBlockAdapter*)fetcher { | 298 - (void)removeFetcher:(web::URLFetcherBlockAdapter*)fetcher { |
| 296 _fetchers.erase(std::find(_fetchers.begin(), _fetchers.end(), fetcher)); | 299 _fetchers.erase(std::find_if( |
| 300 _fetchers.begin(), _fetchers.end(), |
| 301 [fetcher](const std::unique_ptr<web::URLFetcherBlockAdapter>& ptr) { |
| 302 return ptr.get() == fetcher; |
| 303 })); |
| 297 } | 304 } |
| 298 | 305 |
| 299 #pragma mark - Testing-Only Methods | 306 #pragma mark - Testing-Only Methods |
| 300 | 307 |
| 301 - (std::unique_ptr<web::URLFetcherBlockAdapter>) | 308 - (std::unique_ptr<web::URLFetcherBlockAdapter>) |
| 302 fetcherForURL:(const GURL&)URL | 309 fetcherForURL:(const GURL&)URL |
| 303 completionHandler:(web::URLFetcherBlockAdapterCompletion)handler { | 310 completionHandler:(web::URLFetcherBlockAdapterCompletion)handler { |
| 304 return std::unique_ptr<web::URLFetcherBlockAdapter>( | 311 return base::MakeUnique<web::URLFetcherBlockAdapter>( |
| 305 new web::URLFetcherBlockAdapter( | 312 URL, _webState->GetBrowserState()->GetRequestContext(), handler); |
| 306 URL, _webState->GetBrowserState()->GetRequestContext(), handler)); | |
| 307 } | 313 } |
| 308 | 314 |
| 309 @end | 315 @end |
| OLD | NEW |