| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 #include "webkit/plugins/npapi/webplugin_impl.h" | 5 #include "webkit/plugins/npapi/webplugin_impl.h" |
| 6 | 6 |
| 7 #include "base/linked_ptr.h" | 7 #include "base/linked_ptr.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
| (...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 652 string_to_search.find("\\") != std::string::npos) | 652 string_to_search.find("\\") != std::string::npos) |
| 653 return false; | 653 return false; |
| 654 } | 654 } |
| 655 | 655 |
| 656 return true; | 656 return true; |
| 657 } | 657 } |
| 658 | 658 |
| 659 WebPluginImpl::RoutingStatus WebPluginImpl::RouteToFrame( | 659 WebPluginImpl::RoutingStatus WebPluginImpl::RouteToFrame( |
| 660 const char* url, | 660 const char* url, |
| 661 bool is_javascript_url, | 661 bool is_javascript_url, |
| 662 bool popups_allowed, |
| 662 const char* method, | 663 const char* method, |
| 663 const char* target, | 664 const char* target, |
| 664 const char* buf, | 665 const char* buf, |
| 665 unsigned int len, | 666 unsigned int len, |
| 666 int notify_id, | 667 int notify_id, |
| 667 Referrer referrer_flag) { | 668 Referrer referrer_flag) { |
| 668 // If there is no target, there is nothing to do | 669 // If there is no target, there is nothing to do |
| 669 if (!target) | 670 if (!target) |
| 670 return NOT_ROUTED; | 671 return NOT_ROUTED; |
| 671 | 672 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 708 if (!(complete_url.SchemeIs("http") || complete_url.SchemeIs("https"))) | 709 if (!(complete_url.SchemeIs("http") || complete_url.SchemeIs("https"))) |
| 709 return INVALID_URL; | 710 return INVALID_URL; |
| 710 } | 711 } |
| 711 | 712 |
| 712 WebURLRequest request(complete_url); | 713 WebURLRequest request(complete_url); |
| 713 SetReferrer(&request, referrer_flag); | 714 SetReferrer(&request, referrer_flag); |
| 714 | 715 |
| 715 request.setHTTPMethod(WebString::fromUTF8(method)); | 716 request.setHTTPMethod(WebString::fromUTF8(method)); |
| 716 request.setFirstPartyForCookies( | 717 request.setFirstPartyForCookies( |
| 717 webframe_->document().firstPartyForCookies()); | 718 webframe_->document().firstPartyForCookies()); |
| 719 request.setHasUserGesture(popups_allowed); |
| 718 if (len > 0) { | 720 if (len > 0) { |
| 719 if (!SetPostData(&request, buf, len)) { | 721 if (!SetPostData(&request, buf, len)) { |
| 720 // Uhoh - we're in trouble. There isn't a good way | 722 // Uhoh - we're in trouble. There isn't a good way |
| 721 // to recover at this point. Break out. | 723 // to recover at this point. Break out. |
| 722 NOTREACHED(); | 724 NOTREACHED(); |
| 723 return ROUTED; | 725 return ROUTED; |
| 724 } | 726 } |
| 725 } | 727 } |
| 726 | 728 |
| 727 container_->loadFrameRequest( | 729 container_->loadFrameRequest( |
| (...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1071 bool notify_redirects) { | 1073 bool notify_redirects) { |
| 1072 // For this request, we either route the output to a frame | 1074 // For this request, we either route the output to a frame |
| 1073 // because a target has been specified, or we handle the request | 1075 // because a target has been specified, or we handle the request |
| 1074 // here, i.e. by executing the script if it is a javascript url | 1076 // here, i.e. by executing the script if it is a javascript url |
| 1075 // or by initiating a download on the URL, etc. There is one special | 1077 // or by initiating a download on the URL, etc. There is one special |
| 1076 // case in that the request is a javascript url and the target is "_self", | 1078 // case in that the request is a javascript url and the target is "_self", |
| 1077 // in which case we route the output to the plugin rather than routing it | 1079 // in which case we route the output to the plugin rather than routing it |
| 1078 // to the plugin's frame. | 1080 // to the plugin's frame. |
| 1079 bool is_javascript_url = StartsWithASCII(url, "javascript:", false); | 1081 bool is_javascript_url = StartsWithASCII(url, "javascript:", false); |
| 1080 RoutingStatus routing_status = RouteToFrame( | 1082 RoutingStatus routing_status = RouteToFrame( |
| 1081 url, is_javascript_url, method, target, buf, len, notify_id, | 1083 url, is_javascript_url, popups_allowed, method, target, buf, len, |
| 1082 referrer_flag); | 1084 notify_id, referrer_flag); |
| 1083 if (routing_status == ROUTED) | 1085 if (routing_status == ROUTED) |
| 1084 return; | 1086 return; |
| 1085 | 1087 |
| 1086 if (is_javascript_url) { | 1088 if (is_javascript_url) { |
| 1087 GURL gurl(url); | 1089 GURL gurl(url); |
| 1088 WebString result = container_->executeScriptURL(gurl, popups_allowed); | 1090 WebString result = container_->executeScriptURL(gurl, popups_allowed); |
| 1089 | 1091 |
| 1090 // delegate_ could be NULL because executeScript caused the container to | 1092 // delegate_ could be NULL because executeScript caused the container to |
| 1091 // be deleted. | 1093 // be deleted. |
| 1092 if (delegate_) { | 1094 if (delegate_) { |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1378 if (!webframe_) | 1380 if (!webframe_) |
| 1379 return NULL; | 1381 return NULL; |
| 1380 WebView* view = webframe_->view(); | 1382 WebView* view = webframe_->view(); |
| 1381 if (!view) | 1383 if (!view) |
| 1382 return NULL; | 1384 return NULL; |
| 1383 return view->devToolsAgent(); | 1385 return view->devToolsAgent(); |
| 1384 } | 1386 } |
| 1385 | 1387 |
| 1386 } // namespace npapi | 1388 } // namespace npapi |
| 1387 } // namespace webkit | 1389 } // namespace webkit |
| OLD | NEW |