Index: chrome_frame/plugin_url_request.cc |
=================================================================== |
--- chrome_frame/plugin_url_request.cc (revision 0) |
+++ chrome_frame/plugin_url_request.cc (revision 0) |
@@ -0,0 +1,65 @@ |
+// Copyright (c) 2009 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome_frame/plugin_url_request.h" |
+ |
+#include "chrome/test/automation/automation_messages.h" |
+#include "chrome_frame/np_browser_functions.h" |
+ |
+PluginUrlRequest::PluginUrlRequest() |
+ : request_handler_(NULL), tab_(0), remote_request_id_(0), |
+ status_(URLRequestStatus::IO_PENDING), |
+ frame_busting_enabled_(false) { |
+} |
+ |
+PluginUrlRequest::~PluginUrlRequest() { |
+} |
+ |
+bool PluginUrlRequest::Initialize(PluginRequestHandler* request_handler, |
+ int tab, int remote_request_id, const std::string& url, |
+ const std::string& method, const std::string& referrer, |
+ const std::string& extra_headers, net::UploadData* upload_data, |
+ bool enable_frame_busting) { |
+ request_handler_ = request_handler; |
+ tab_ = tab; |
+ remote_request_id_ = remote_request_id; |
+ url_ = url; |
+ method_ = method; |
+ referrer_ = referrer; |
+ extra_headers_ = extra_headers; |
+ upload_data_ = upload_data; |
+ frame_busting_enabled_ = enable_frame_busting; |
+ return true; |
+} |
+ |
+void PluginUrlRequest::OnResponseStarted(const char* mime_type, |
+ const char* headers, int size, base::Time last_modified, |
+ const std::string& persistent_cookies, |
+ const std::string& redirect_url, int redirect_status) { |
+ const IPC::AutomationURLResponse response = { |
+ mime_type, |
+ headers ? headers : "", |
+ size, |
+ last_modified, |
+ persistent_cookies, |
+ redirect_url, |
+ redirect_status |
+ }; |
+ request_handler_->Send(new AutomationMsg_RequestStarted(0, tab_, |
+ remote_request_id_, response)); |
+} |
+ |
+void PluginUrlRequest::OnResponseEnd(const URLRequestStatus& status) { |
+ DCHECK(!status.is_io_pending()); |
+ DCHECK(status.is_success() || status.os_error()); |
+ request_handler_->Send(new AutomationMsg_RequestEnd(0, tab_, |
+ remote_request_id_, status)); |
+} |
+ |
+void PluginUrlRequest::OnReadComplete(const void* buffer, int len) { |
+ std::string data(reinterpret_cast<const char*>(buffer), len); |
+ request_handler_->Send(new AutomationMsg_RequestData(0, tab_, |
+ remote_request_id_, data)); |
+} |
+ |