Index: ios/chrome/browser/ui/webui/net_export/net_export_ui.cc |
diff --git a/chrome/browser/ui/webui/net_export_ui.cc b/ios/chrome/browser/ui/webui/net_export/net_export_ui.cc |
similarity index 65% |
copy from chrome/browser/ui/webui/net_export_ui.cc |
copy to ios/chrome/browser/ui/webui/net_export/net_export_ui.cc |
index e5f96eaf110698165d8b698ebfb5decd398e7d14..342ffebecc8e3582df139dc6c53309046e0cc5a2 100644 |
--- a/chrome/browser/ui/webui/net_export_ui.cc |
+++ b/ios/chrome/browser/ui/webui/net_export/net_export_ui.cc |
@@ -1,43 +1,36 @@ |
-// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
+// 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 "chrome/browser/ui/webui/net_export_ui.h" |
+#include "ios/chrome/browser/ui/webui/net_export/net_export_ui.h" |
#include <string> |
#include "base/bind.h" |
+#include "base/location.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/strings/string_util.h" |
#include "base/strings/utf_string_conversions.h" |
#include "base/values.h" |
-#include "chrome/browser/browser_process.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/common/url_constants.h" |
-#include "components/grit/components_resources.h" |
#include "components/net_log/chrome_net_log.h" |
#include "components/net_log/net_export_ui_constants.h" |
#include "components/net_log/net_log_temp_file.h" |
-#include "content/public/browser/browser_thread.h" |
-#include "content/public/browser/url_data_source.h" |
-#include "content/public/browser/web_contents.h" |
-#include "content/public/browser/web_ui.h" |
-#include "content/public/browser/web_ui_data_source.h" |
-#include "content/public/browser/web_ui_message_handler.h" |
- |
-#if defined(OS_ANDROID) |
-#include "chrome/browser/android/intent_helper.h" |
-#endif |
- |
-using content::BrowserThread; |
-using content::WebContents; |
-using content::WebUIMessageHandler; |
+#include "grit/components_resources.h" |
+#include "ios/chrome/browser/application_context.h" |
+#include "ios/chrome/browser/chrome_url_constants.h" |
+#include "ios/chrome/browser/ui/show_mail_composer_util.h" |
+#include "ios/chrome/grit/ios_strings.h" |
+#include "ios/public/provider/chrome/browser/browser_state/chrome_browser_state.h" |
+#include "ios/public/provider/web/web_ui_ios.h" |
+#include "ios/public/provider/web/web_ui_ios_message_handler.h" |
+#include "ios/web/public/web_thread.h" |
+#include "ios/web/public/web_ui_ios_data_source.h" |
namespace { |
-content::WebUIDataSource* CreateNetExportHTMLSource() { |
- content::WebUIDataSource* source = |
- content::WebUIDataSource::Create(chrome::kChromeUINetExportHost); |
+web::WebUIIOSDataSource* CreateNetExportHTMLSource() { |
+ web::WebUIIOSDataSource* source = |
+ web::WebUIIOSDataSource::Create(kChromeUINetExportHost); |
source->SetJsonPath("strings.js"); |
source->AddResourcePath(net_log::kNetExportUIJS, IDR_NET_LOG_NET_EXPORT_JS); |
@@ -50,7 +43,7 @@ content::WebUIDataSource* CreateNetExportHTMLSource() { |
// this class's public methods are expected to run on the UI thread. All static |
// functions except SendEmail run on FILE_USER_BLOCKING thread. |
class NetExportMessageHandler |
- : public WebUIMessageHandler, |
+ : public web::WebUIIOSMessageHandler, |
public base::SupportsWeakPtr<NetExportMessageHandler> { |
public: |
NetExportMessageHandler(); |
@@ -88,7 +81,7 @@ class NetExportMessageHandler |
// renderer, passing in |arg|. Takes ownership of |arg|. |
void OnExportNetLogInfoChanged(base::Value* arg); |
- // Cache of g_browser_process->net_log()->net_log_temp_file(). |
+ // Cache of GetApplicationContex()->GetNetLog()->net_log_temp_file(). |
net_log::NetLogTempFile* net_log_temp_file_; |
base::WeakPtrFactory<NetExportMessageHandler> weak_ptr_factory_; |
@@ -97,20 +90,21 @@ class NetExportMessageHandler |
}; |
NetExportMessageHandler::NetExportMessageHandler() |
- : net_log_temp_file_(g_browser_process->net_log()->net_log_temp_file()), |
- weak_ptr_factory_(this) { |
-} |
+ : net_log_temp_file_(GetApplicationContext() |
+ ->GetNetLog() |
+ ->net_log_temp_file()), |
+ weak_ptr_factory_(this) {} |
NetExportMessageHandler::~NetExportMessageHandler() { |
// Cancel any in-progress requests to collect net_log into temporary file. |
- BrowserThread::PostTask(BrowserThread::FILE_USER_BLOCKING, FROM_HERE, |
- base::Bind(&net_log::NetLogTempFile::ProcessCommand, |
- base::Unretained(net_log_temp_file_), |
- net_log::NetLogTempFile::DO_STOP)); |
+ web::WebThread::PostTask(web::WebThread::FILE_USER_BLOCKING, FROM_HERE, |
+ base::Bind(&net_log::NetLogTempFile::ProcessCommand, |
+ base::Unretained(net_log_temp_file_), |
+ net_log::NetLogTempFile::DO_STOP)); |
} |
void NetExportMessageHandler::RegisterMessages() { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI); |
web_ui()->RegisterMessageCallback( |
net_log::kGetExportNetLogInfoHandler, |
@@ -132,12 +126,10 @@ void NetExportMessageHandler::RegisterMessages() { |
void NetExportMessageHandler::OnGetExportNetLogInfo( |
const base::ListValue* list) { |
- BrowserThread::PostTask( |
- BrowserThread::FILE_USER_BLOCKING, |
- FROM_HERE, |
+ web::WebThread::PostTask( |
+ web::WebThread::FILE_USER_BLOCKING, FROM_HERE, |
base::Bind(&NetExportMessageHandler::SendExportNetLogInfo, |
- weak_ptr_factory_.GetWeakPtr(), |
- net_log_temp_file_)); |
+ weak_ptr_factory_.GetWeakPtr(), net_log_temp_file_)); |
} |
void NetExportMessageHandler::OnStartNetLog(const base::ListValue* list) { |
@@ -165,12 +157,11 @@ void NetExportMessageHandler::OnStopNetLog(const base::ListValue* list) { |
} |
void NetExportMessageHandler::OnSendNetLog(const base::ListValue* list) { |
- content::BrowserThread::PostTaskAndReplyWithResult( |
- content::BrowserThread::FILE_USER_BLOCKING, |
- FROM_HERE, |
- base::Bind(&NetExportMessageHandler::GetNetLogFileName, |
- base::Unretained(net_log_temp_file_)), |
- base::Bind(&NetExportMessageHandler::SendEmail)); |
+ web::WebThread::PostTaskAndReplyWithResult( |
+ web::WebThread::FILE_USER_BLOCKING, FROM_HERE, |
+ base::Bind(&NetExportMessageHandler::GetNetLogFileName, |
+ base::Unretained(net_log_temp_file_)), |
+ base::Bind(&NetExportMessageHandler::SendEmail)); |
} |
// static |
@@ -178,18 +169,15 @@ void NetExportMessageHandler::ProcessNetLogCommand( |
base::WeakPtr<NetExportMessageHandler> net_export_message_handler, |
net_log::NetLogTempFile* net_log_temp_file, |
net_log::NetLogTempFile::Command command) { |
- if (!BrowserThread::CurrentlyOn(BrowserThread::FILE_USER_BLOCKING)) { |
- BrowserThread::PostTask( |
- BrowserThread::FILE_USER_BLOCKING, |
- FROM_HERE, |
+ if (!web::WebThread::CurrentlyOn(web::WebThread::FILE_USER_BLOCKING)) { |
+ web::WebThread::PostTask( |
+ web::WebThread::FILE_USER_BLOCKING, FROM_HERE, |
base::Bind(&NetExportMessageHandler::ProcessNetLogCommand, |
- net_export_message_handler, |
- net_log_temp_file, |
- command)); |
+ net_export_message_handler, net_log_temp_file, command)); |
return; |
} |
- DCHECK_CURRENTLY_ON(BrowserThread::FILE_USER_BLOCKING); |
+ DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::FILE_USER_BLOCKING); |
net_log_temp_file->ProcessCommand(command); |
SendExportNetLogInfo(net_export_message_handler, net_log_temp_file); |
} |
@@ -197,7 +185,7 @@ void NetExportMessageHandler::ProcessNetLogCommand( |
// static |
base::FilePath NetExportMessageHandler::GetNetLogFileName( |
net_log::NetLogTempFile* net_log_temp_file) { |
- DCHECK_CURRENTLY_ON(BrowserThread::FILE_USER_BLOCKING); |
+ DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::FILE_USER_BLOCKING); |
base::FilePath net_export_file_path; |
net_log_temp_file->GetFilePath(&net_export_file_path); |
return net_export_file_path; |
@@ -207,13 +195,12 @@ base::FilePath NetExportMessageHandler::GetNetLogFileName( |
void NetExportMessageHandler::SendExportNetLogInfo( |
base::WeakPtr<NetExportMessageHandler> net_export_message_handler, |
net_log::NetLogTempFile* net_log_temp_file) { |
- DCHECK_CURRENTLY_ON(BrowserThread::FILE_USER_BLOCKING); |
+ DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::FILE_USER_BLOCKING); |
base::Value* value = net_log_temp_file->GetState(); |
- if (!BrowserThread::PostTask( |
- BrowserThread::UI, FROM_HERE, |
- base::Bind(&NetExportMessageHandler::OnExportNetLogInfoChanged, |
- net_export_message_handler, |
- value))) { |
+ if (!web::WebThread::PostTask( |
+ web::WebThread::UI, FROM_HERE, |
+ base::Bind(&NetExportMessageHandler::OnExportNetLogInfoChanged, |
+ net_export_message_handler, value))) { |
// Failed posting the task, avoid leaking. |
delete value; |
} |
@@ -223,34 +210,31 @@ void NetExportMessageHandler::SendExportNetLogInfo( |
void NetExportMessageHandler::SendEmail(const base::FilePath& file_to_send) { |
if (file_to_send.empty()) |
return; |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI); |
-#if defined(OS_ANDROID) |
std::string email; |
std::string subject = "net_internals_log"; |
std::string title = "Issue number: "; |
std::string body = |
"Please add some informative text about the network issues."; |
- base::FilePath::StringType file_to_attach(file_to_send.value()); |
- chrome::android::SendEmail( |
- base::UTF8ToUTF16(email), base::UTF8ToUTF16(subject), |
- base::UTF8ToUTF16(body), base::UTF8ToUTF16(title), |
- base::UTF8ToUTF16(file_to_attach)); |
-#endif |
+ ShowMailComposer(base::UTF8ToUTF16(email), base::UTF8ToUTF16(subject), |
+ base::UTF8ToUTF16(body), base::UTF8ToUTF16(title), |
+ file_to_send, |
+ IDS_IOS_NET_EXPORT_NO_EMAIL_ACCOUNTS_ALERT_TITLE, |
+ IDS_IOS_NET_EXPORT_NO_EMAIL_ACCOUNTS_ALERT_MESSAGE); |
} |
void NetExportMessageHandler::OnExportNetLogInfoChanged(base::Value* arg) { |
scoped_ptr<base::Value> value(arg); |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI); |
web_ui()->CallJavascriptFunction(net_log::kOnExportNetLogInfoChanged, *arg); |
} |
} // namespace |
-NetExportUI::NetExportUI(content::WebUI* web_ui) : WebUIController(web_ui) { |
+NetExportUI::NetExportUI(web::WebUIIOS* web_ui) |
+ : web::WebUIIOSController(web_ui) { |
web_ui->AddMessageHandler(new NetExportMessageHandler()); |
- |
- // Set up the chrome://net-export/ source. |
- Profile* profile = Profile::FromWebUI(web_ui); |
- content::WebUIDataSource::Add(profile, CreateNetExportHTMLSource()); |
+ web::WebUIIOSDataSource::Add(ios::ChromeBrowserState::FromWebUIIOS(web_ui), |
+ CreateNetExportHTMLSource()); |
} |