blob: 7f70271659e01bf5996ff17452f5291888f6418e [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/extensions/file_handlers/file_handling_launch_utils.h"
#include "chrome/browser/extensions/tab_helper.h"
#include "chrome/browser/web_applications/web_app_tab_helper.h"
#include "components/webapps/browser/launch_queue/launch_queue.h"
#include "content/public/browser/web_contents.h"
#include "extensions/common/extension.h"
#include "extensions/common/manifest_handlers/web_file_handlers_info.h"
namespace extensions {
void EnqueueLaunchParamsInWebContents(content::WebContents* web_contents,
const Extension& extension,
const GURL& url,
std::vector<base::FilePath> paths) {
CHECK(extensions::WebFileHandlers::SupportsWebFileHandlers(extension));
// Enable LaunchQueue in Web file handlers.
webapps::LaunchParams launch_params;
launch_params.started_new_navigation = true;
launch_params.app_id = extension.id();
launch_params.target_url = url;
launch_params.paths = paths;
auto* helper = web_app::WebAppTabHelper::FromWebContents(web_contents);
if (helper) {
helper->EnsureLaunchQueue().Enqueue(launch_params);
}
}
} // namespace extensions