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 2537 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2548 return YES; | 2548 return YES; |
2549 } | 2549 } |
2550 | 2550 |
2551 - (BOOL)handleDocumentSubmitMessage:(base::DictionaryValue*)message | 2551 - (BOOL)handleDocumentSubmitMessage:(base::DictionaryValue*)message |
2552 context:(NSDictionary*)context { | 2552 context:(NSDictionary*)context { |
2553 std::string href; | 2553 std::string href; |
2554 if (!message->GetString("href", &href)) { | 2554 if (!message->GetString("href", &href)) { |
2555 DLOG(WARNING) << "JS message parameter not found: href"; | 2555 DLOG(WARNING) << "JS message parameter not found: href"; |
2556 return NO; | 2556 return NO; |
2557 } | 2557 } |
2558 const GURL targetURL(href); | |
2559 const GURL currentURL([self currentURL]); | |
2560 bool targetsFrame = false; | |
2561 message->GetBoolean("targetsFrame", &targetsFrame); | |
2562 if (!targetsFrame && web::UrlHasWebScheme(targetURL)) { | |
2563 // The referrer is not known yet, and will be updated later. | |
2564 const web::Referrer emptyReferrer; | |
2565 [self registerLoadRequest:targetURL | |
2566 referrer:emptyReferrer | |
2567 transition:ui::PAGE_TRANSITION_FORM_SUBMIT]; | |
2568 } | |
2569 std::string formName; | 2558 std::string formName; |
2570 message->GetString("formName", &formName); | 2559 message->GetString("formName", &formName); |
2571 base::scoped_nsobject<NSSet> observers([_observers copy]); | 2560 base::scoped_nsobject<NSSet> observers([_observers copy]); |
2572 // We decide the form is user-submitted if the user has interacted with | 2561 // We decide the form is user-submitted if the user has interacted with |
2573 // the main page (using logic from the popup blocker), or if the keyboard | 2562 // the main page (using logic from the popup blocker), or if the keyboard |
2574 // is visible. | 2563 // is visible. |
2575 BOOL submittedByUser = [context[kUserIsInteractingKey] boolValue] || | 2564 BOOL submittedByUser = [context[kUserIsInteractingKey] boolValue] || |
2576 [_webViewProxy keyboardAccessory]; | 2565 [_webViewProxy keyboardAccessory]; |
2577 _webStateImpl->OnDocumentSubmitted(formName, submittedByUser); | 2566 _webStateImpl->OnDocumentSubmitted(formName, submittedByUser); |
2578 return YES; | 2567 return YES; |
(...skipping 2508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5087 - (void)simulateLoadRequestWithURL:(const GURL&)URL { | 5076 - (void)simulateLoadRequestWithURL:(const GURL&)URL { |
5088 _lastRegisteredRequestURL = URL; | 5077 _lastRegisteredRequestURL = URL; |
5089 _loadPhase = web::LOAD_REQUESTED; | 5078 _loadPhase = web::LOAD_REQUESTED; |
5090 } | 5079 } |
5091 | 5080 |
5092 - (NSString*)referrerFromNavigationAction:(WKNavigationAction*)action { | 5081 - (NSString*)referrerFromNavigationAction:(WKNavigationAction*)action { |
5093 return [action.request valueForHTTPHeaderField:kReferrerHeaderName]; | 5082 return [action.request valueForHTTPHeaderField:kReferrerHeaderName]; |
5094 } | 5083 } |
5095 | 5084 |
5096 @end | 5085 @end |
OLD | NEW |