1 // Copyright 2020 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef IOS_CHROME_BROWSER_POLICY_REPORTING_BROWSER_REPORT_GENERATOR_IOS_H_ 6 #define IOS_CHROME_BROWSER_POLICY_REPORTING_BROWSER_REPORT_GENERATOR_IOS_H_ 7 8 #include "components/enterprise/browser/reporting/browser_report_generator.h" 9 10 #include <memory> 11 12 #include "base/callback.h" 13 #include "components/policy/proto/device_management_backend.pb.h" 14 #include "components/version_info/channel.h" 15 16 namespace em = ::enterprise_management; 17 18 namespace enterprise_reporting { 19 20 // iOS implementation of platform-specific info fetching for Enterprise browser 21 // report generation. 22 class BrowserReportGeneratorIOS : public BrowserReportGenerator::Delegate { 23 public: 24 using ReportCallback = base::OnceCallback<void( 25 std::unique_ptr<enterprise_management::BrowserReport>)>; 26 27 BrowserReportGeneratorIOS(); 28 BrowserReportGeneratorIOS(const BrowserReportGeneratorIOS&) = delete; 29 BrowserReportGeneratorIOS& operator=(const BrowserReportGeneratorIOS&) = 30 delete; 31 ~BrowserReportGeneratorIOS() override; 32 33 // BrowserReportGenerator::Delegate implementation. 34 std::string GetExecutablePath() override; 35 version_info::Channel GetChannel() override; 36 void GenerateBuildStateInfo(em::BrowserReport* report) override; 37 void GenerateProfileInfo(ReportType report_type, 38 em::BrowserReport* report) override; 39 void GeneratePluginsIfNeeded( 40 ReportCallback callback, 41 std::unique_ptr<em::BrowserReport> report) override; 42 }; 43 44 } // namespace enterprise_reporting 45 46 #endif // IOS_CHROME_BROWSER_POLICY_REPORTING_BROWSER_REPORT_GENERATOR_IOS_H_ 47