tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

event_base.cc (1793B)


      1 // Copyright 2022 The Chromium Authors.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "event_base.h"
      6 
      7 namespace content_analysis {
      8 namespace sdk {
      9 
     10 ContentAnalysisEventBase::ContentAnalysisEventBase(
     11   const BrowserInfo& browser_info)
     12 : browser_info_(browser_info) {}
     13 
     14 ResultCode ContentAnalysisEventBase::Close() {
     15  return ResultCode::OK;
     16 }
     17 
     18 ResultCode UpdateResponse(ContentAnalysisResponse& response,
     19                   const std::string& tag,
     20                   ContentAnalysisResponse::Result::Status status) {
     21  auto result = response.results_size() > 0
     22      ? response.mutable_results(0)
     23      : response.add_results();
     24 
     25  if (!tag.empty()) {
     26    result->set_tag(tag);
     27  }
     28 
     29  if (status != ContentAnalysisResponse::Result::STATUS_UNKNOWN) {
     30    result->set_status(status);
     31  }
     32 
     33  return ResultCode::OK;
     34 }
     35 
     36 ResultCode SetEventVerdictTo(
     37    ContentAnalysisEvent* event,
     38    ContentAnalysisResponse::Result::TriggeredRule::Action action) {
     39  // This function expects that the event's result has already been
     40  // initialized by a call to UpdateResponse().
     41 
     42  if (event->GetResponse().results_size() == 0) {
     43    return ResultCode::ERR_MISSING_RESULT;
     44  }
     45 
     46  auto result = event->GetResponse().mutable_results(0);
     47 
     48  // Content analysis responses generated with this SDK contain at most one
     49  // triggered rule.
     50  auto rule = result->triggered_rules_size() > 0
     51      ? result->mutable_triggered_rules(0)
     52      : result->add_triggered_rules();
     53 
     54  rule->set_action(action);
     55 
     56  return ResultCode::OK;
     57 }
     58 
     59 ResultCode SetEventVerdictToBlock(ContentAnalysisEvent* event) {
     60  return SetEventVerdictTo(event,
     61      ContentAnalysisResponse::Result::TriggeredRule::BLOCK);
     62 }
     63 
     64 }  // namespace sdk
     65 }  // namespace content_analysis