Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/extensions/api/feedback_private/feedback_private_api.h" | 5 #include "chrome/browser/extensions/api/feedback_private/feedback_private_api.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 25 #include "components/feedback/tracing_manager.h" | 25 #include "components/feedback/tracing_manager.h" |
| 26 #include "components/signin/core/browser/signin_manager.h" | 26 #include "components/signin/core/browser/signin_manager.h" |
| 27 #include "content/public/browser/user_metrics.h" | 27 #include "content/public/browser/user_metrics.h" |
| 28 #include "extensions/browser/event_router.h" | 28 #include "extensions/browser/event_router.h" |
| 29 #include "grit/components_strings.h" | 29 #include "grit/components_strings.h" |
| 30 #include "ui/base/l10n/l10n_util.h" | 30 #include "ui/base/l10n/l10n_util.h" |
| 31 #include "ui/base/webui/web_ui_util.h" | 31 #include "ui/base/webui/web_ui_util.h" |
| 32 #include "url/url_util.h" | 32 #include "url/url_util.h" |
| 33 | 33 |
| 34 #if defined(OS_WIN) | 34 #if defined(OS_WIN) |
| 35 #include "base/feature_list.h" | |
| 35 #include "chrome/browser/safe_browsing/srt_fetcher_win.h" | 36 #include "chrome/browser/safe_browsing/srt_fetcher_win.h" |
| 37 #include "chrome/common/extensions/api/feedback_private.h" | |
|
afakhry
2016/06/27 19:59:53
Nit: Please remove this include. This file is alre
| |
| 36 #endif | 38 #endif |
| 37 | 39 |
| 38 using extensions::api::feedback_private::SystemInformation; | 40 using extensions::api::feedback_private::SystemInformation; |
| 39 using feedback::FeedbackData; | 41 using feedback::FeedbackData; |
| 40 | 42 |
| 41 namespace { | 43 namespace { |
| 42 | 44 |
| 43 // Getting the filename of a blob prepends a "C:\fakepath" to the filename. | 45 // Getting the filename of a blob prepends a "C:\fakepath" to the filename. |
| 44 // This is undesirable, strip it if it exists. | 46 // This is undesirable, strip it if it exists. |
| 45 std::string StripFakepath(const std::string& path) { | 47 std::string StripFakepath(const std::string& path) { |
| 46 const char kFakePathStr[] = "C:\\fakepath\\"; | 48 const char kFakePathStr[] = "C:\\fakepath\\"; |
| 47 if (base::StartsWith(path, kFakePathStr, | 49 if (base::StartsWith(path, kFakePathStr, |
| 48 base::CompareCase::INSENSITIVE_ASCII)) | 50 base::CompareCase::INSENSITIVE_ASCII)) |
| 49 return path.substr(arraysize(kFakePathStr) - 1); | 51 return path.substr(arraysize(kFakePathStr) - 1); |
| 50 return path; | 52 return path; |
| 51 } | 53 } |
| 52 | 54 |
| 55 #if defined(OS_WIN) | |
| 56 // Allows enabling/disabling SRT Prompt as a Variations feature. | |
| 57 constexpr base::Feature kSrtPromptOnFeedbackForm { | |
| 58 "SrtPromptOnFeedbackForm", base::FEATURE_DISABLED_BY_DEFAULT | |
| 59 }; | |
| 60 #endif | |
| 61 | |
| 53 } // namespace | 62 } // namespace |
| 54 | 63 |
| 55 namespace extensions { | 64 namespace extensions { |
| 56 | 65 |
| 57 namespace feedback_private = api::feedback_private; | 66 namespace feedback_private = api::feedback_private; |
| 58 | 67 |
| 59 using feedback_private::SystemInformation; | 68 using feedback_private::SystemInformation; |
| 60 using feedback_private::FeedbackInfo; | 69 using feedback_private::FeedbackInfo; |
| 61 using feedback_private::FeedbackFlow; | 70 using feedback_private::FeedbackFlow; |
| 62 | 71 |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 79 } | 88 } |
| 80 | 89 |
| 81 FeedbackService* FeedbackPrivateAPI::GetService() const { | 90 FeedbackService* FeedbackPrivateAPI::GetService() const { |
| 82 return service_; | 91 return service_; |
| 83 } | 92 } |
| 84 | 93 |
| 85 void FeedbackPrivateAPI::RequestFeedback( | 94 void FeedbackPrivateAPI::RequestFeedback( |
| 86 const std::string& description_template, | 95 const std::string& description_template, |
| 87 const std::string& category_tag, | 96 const std::string& category_tag, |
| 88 const GURL& page_url) { | 97 const GURL& page_url) { |
| 98 | |
|
afakhry
2016/06/27 19:59:53
Nit: Remove this line.
| |
| 89 #if defined(OS_WIN) | 99 #if defined(OS_WIN) |
| 90 // Show prompt for Software Removal Tool if the Reporter component has found | 100 // Show prompt for Software Removal Tool if the Reporter component has found |
| 91 // unwanted software, and the user has never run the cleaner before. | 101 // unwanted software, and the user has never run the cleaner before. |
| 92 if (safe_browsing::ReporterFoundUws() && | 102 if (base::FeatureList::IsEnabled(kSrtPromptOnFeedbackForm) && |
| 103 safe_browsing::ReporterFoundUws() && | |
| 93 !safe_browsing::UserHasRunCleaner()) { | 104 !safe_browsing::UserHasRunCleaner()) { |
| 94 RequestFeedbackForFlow(description_template, category_tag, page_url, | 105 RequestFeedbackForFlow(description_template, category_tag, page_url, |
| 95 FeedbackFlow::FEEDBACK_FLOW_SHOWSRTPROMPT); | 106 FeedbackFlow::FEEDBACK_FLOW_SHOWSRTPROMPT); |
| 96 return; | 107 return; |
| 97 } | 108 } |
| 98 #endif | 109 #endif |
| 99 | |
| 100 RequestFeedbackForFlow(description_template, category_tag, page_url, | 110 RequestFeedbackForFlow(description_template, category_tag, page_url, |
| 101 FeedbackFlow::FEEDBACK_FLOW_REGULAR); | 111 FeedbackFlow::FEEDBACK_FLOW_REGULAR); |
| 102 } | 112 } |
| 103 | 113 |
| 104 void FeedbackPrivateAPI::RequestFeedbackForFlow( | 114 void FeedbackPrivateAPI::RequestFeedbackForFlow( |
| 105 const std::string& description_template, | 115 const std::string& description_template, |
| 106 const std::string& category_tag, | 116 const std::string& category_tag, |
| 107 const GURL& page_url, | 117 const GURL& page_url, |
| 108 api::feedback_private::FeedbackFlow flow) { | 118 api::feedback_private::FeedbackFlow flow) { |
| 109 if (browser_context_ && EventRouter::Get(browser_context_)) { | 119 if (browser_context_ && EventRouter::Get(browser_context_)) { |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 312 content::RecordAction( | 322 content::RecordAction( |
| 313 base::UserMetricsAction("Feedback.SrtPromptClosed")); | 323 base::UserMetricsAction("Feedback.SrtPromptClosed")); |
| 314 break; | 324 break; |
| 315 default: | 325 default: |
| 316 return RespondNow(Error("Invalid arugment.")); | 326 return RespondNow(Error("Invalid arugment.")); |
| 317 } | 327 } |
| 318 return RespondNow(NoArguments()); | 328 return RespondNow(NoArguments()); |
| 319 } | 329 } |
| 320 | 330 |
| 321 } // namespace extensions | 331 } // namespace extensions |
| OLD | NEW |