Index: extensions/browser/guest_view/web_view/web_ui/web_ui_url_fetcher.cc |
diff --git a/extensions/browser/guest_view/web_view/web_ui/web_ui_url_fetcher.cc b/extensions/browser/guest_view/web_view/web_ui/web_ui_url_fetcher.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..412d5e073006c6cfb6bfe2039a5e469ae9063f17 |
--- /dev/null |
+++ b/extensions/browser/guest_view/web_view/web_ui/web_ui_url_fetcher.cc |
@@ -0,0 +1,47 @@ |
+// Copyright 2015 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 "extensions/browser/guest_view/web_view/web_ui/web_ui_url_fetcher.h" |
+ |
+#include "content/public/browser/browser_context.h" |
+#include "content/public/common/url_fetcher.h" |
+#include "net/base/load_flags.h" |
+ |
+WebUIURLFetcher::WebUIURLFetcher(content::BrowserContext* context, |
+ int render_process_id, |
+ int render_view_id, |
+ const GURL& url, |
+ const WebUILoadFileCallback& callback) |
+ : context_(context), |
+ render_process_id_(render_process_id), |
+ render_view_id_(render_view_id), |
+ url_(url), |
+ callback_(callback) { |
+} |
+ |
+WebUIURLFetcher::~WebUIURLFetcher() { |
+} |
+ |
+void WebUIURLFetcher::Start() { |
+ fetcher_.reset(net::URLFetcher::Create(url_, net::URLFetcher::GET, this)); |
+ fetcher_->SetRequestContext(context_->GetRequestContext()); |
+ fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES); |
+ |
+ content::AssociateURLFetcherWithRenderFrame( |
+ fetcher_.get(), url_, render_process_id_, render_view_id_); |
+ fetcher_->Start(); |
+} |
+ |
+void WebUIURLFetcher::OnURLFetchComplete(const net::URLFetcher* source) { |
+ CHECK_EQ(fetcher_.get(), source); |
+ |
+ std::string data; |
+ bool result = false; |
+ if (fetcher_->GetStatus().status() == net::URLRequestStatus::SUCCESS) { |
+ result = fetcher_->GetResponseAsString(&data); |
+ DCHECK(result); |
+ } |
+ fetcher_.reset(); |
+ callback_.Run(result, data); |
+} |