Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/web_state/ui/crw_web_controller.h" | 5 #import "ios/web/web_state/ui/crw_web_controller.h" |
| 6 | 6 |
| 7 #import <WebKit/WebKit.h> | 7 #import <WebKit/WebKit.h> |
| 8 | 8 |
| 9 #import <objc/runtime.h> | 9 #import <objc/runtime.h> |
| 10 #include <stddef.h> | 10 #include <stddef.h> |
| (...skipping 2278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2289 // |[_webView executeJavaScript:completionHandler:]| is not used here because | 2289 // |[_webView executeJavaScript:completionHandler:]| is not used here because |
| 2290 // it does not check that page is the same. | 2290 // it does not check that page is the same. |
| 2291 [self executeJavaScript:script completionHandler:nil]; | 2291 [self executeJavaScript:script completionHandler:nil]; |
| 2292 [_injectedScriptManagers addObject:JSInjectionManagerClass]; | 2292 [_injectedScriptManagers addObject:JSInjectionManagerClass]; |
| 2293 } | 2293 } |
| 2294 | 2294 |
| 2295 #pragma mark - | 2295 #pragma mark - |
| 2296 | 2296 |
| 2297 - (void)executeUserJavaScript:(NSString*)script | 2297 - (void)executeUserJavaScript:(NSString*)script |
| 2298 completionHandler:(web::JavaScriptResultBlock)completion { | 2298 completionHandler:(web::JavaScriptResultBlock)completion { |
| 2299 // For security reasons executing JavaScript on pages with app-specific URLs | |
|
lpromero
2017/03/23 12:43:48
Nit: Add a comma after "reasons".
Eugene But (OOO till 7-30)
2017/03/23 17:45:08
Done.
| |
| 2300 // is not allowed, because those pages may have elevated privileges. | |
| 2301 GURL lastCommittedURL = self.webState->GetLastCommittedURL(); | |
| 2302 if (web::GetWebClient()->IsAppSpecificURL(lastCommittedURL)) { | |
| 2303 if (completion) { | |
| 2304 dispatch_async(dispatch_get_main_queue(), ^{ | |
| 2305 base::scoped_nsobject<NSError> error([[NSError alloc] | |
| 2306 initWithDomain:web::kJSEvaluationErrorDomain | |
| 2307 code:web::JS_EVALUATION_ERROR_CODE_NO_WEB_VIEW | |
| 2308 userInfo:nil]); | |
| 2309 completion(nil, error); | |
| 2310 }); | |
| 2311 } | |
| 2312 return; | |
| 2313 } | |
| 2314 | |
| 2299 [self setUserInteractionRegistered:YES]; | 2315 [self setUserInteractionRegistered:YES]; |
| 2300 [self executeJavaScript:script completionHandler:completion]; | 2316 [self executeJavaScript:script completionHandler:completion]; |
| 2301 } | 2317 } |
| 2302 | 2318 |
| 2303 - (BOOL)respondToMessage:(base::DictionaryValue*)message | 2319 - (BOOL)respondToMessage:(base::DictionaryValue*)message |
| 2304 userIsInteracting:(BOOL)userIsInteracting | 2320 userIsInteracting:(BOOL)userIsInteracting |
| 2305 originURL:(const GURL&)originURL { | 2321 originURL:(const GURL&)originURL { |
| 2306 std::string command; | 2322 std::string command; |
| 2307 if (!message->GetString("command", &command)) { | 2323 if (!message->GetString("command", &command)) { |
| 2308 DLOG(WARNING) << "JS message parameter not found: command"; | 2324 DLOG(WARNING) << "JS message parameter not found: command"; |
| (...skipping 2766 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5075 - (void)simulateLoadRequestWithURL:(const GURL&)URL { | 5091 - (void)simulateLoadRequestWithURL:(const GURL&)URL { |
| 5076 _lastRegisteredRequestURL = URL; | 5092 _lastRegisteredRequestURL = URL; |
| 5077 _loadPhase = web::LOAD_REQUESTED; | 5093 _loadPhase = web::LOAD_REQUESTED; |
| 5078 } | 5094 } |
| 5079 | 5095 |
| 5080 - (NSString*)referrerFromNavigationAction:(WKNavigationAction*)action { | 5096 - (NSString*)referrerFromNavigationAction:(WKNavigationAction*)action { |
| 5081 return [action.request valueForHTTPHeaderField:kReferrerHeaderName]; | 5097 return [action.request valueForHTTPHeaderField:kReferrerHeaderName]; |
| 5082 } | 5098 } |
| 5083 | 5099 |
| 5084 @end | 5100 @end |
| OLD | NEW |