mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2024-12-13 01:56:20 +01:00
48fc0bd220
Existing CefBrowserContext functionality is now split between CefBrowserContext and AlloyBrowserContext. Runtime implementations of CefBrowserContext will provide access to the content::BrowserContext and Profile types via different inheritance paths. For example, the Alloy runtime uses ChromeProfileAlloy and the Chrome runtime uses ProfileImpl. This change also renames CefResourceContext to CefIOThreadState to more accurately represent its purpose as it no longer needs to extend content::ResourceContext.
340 lines
13 KiB
Diff
340 lines
13 KiB
Diff
diff --git chrome/browser/download/download_prefs.cc chrome/browser/download/download_prefs.cc
|
|
index a996e15eeba1..cbc0ad1f9019 100644
|
|
--- chrome/browser/download/download_prefs.cc
|
|
+++ chrome/browser/download/download_prefs.cc
|
|
@@ -23,6 +23,7 @@
|
|
#include "base/strings/sys_string_conversions.h"
|
|
#include "base/strings/utf_string_conversions.h"
|
|
#include "build/build_config.h"
|
|
+#include "cef/libcef/features/runtime.h"
|
|
#include "chrome/browser/download/chrome_download_manager_delegate.h"
|
|
#include "chrome/browser/download/download_core_service_factory.h"
|
|
#include "chrome/browser/download/download_core_service_impl.h"
|
|
@@ -56,6 +57,10 @@
|
|
#include "chrome/browser/ui/pdf/adobe_reader_info_win.h"
|
|
#endif
|
|
|
|
+#if BUILDFLAG(ENABLE_CEF)
|
|
+#include "cef/libcef/browser/alloy/alloy_browser_context.h"
|
|
+#endif
|
|
+
|
|
using content::BrowserContext;
|
|
using content::BrowserThread;
|
|
using content::DownloadManager;
|
|
@@ -340,6 +345,11 @@ DownloadPrefs* DownloadPrefs::FromDownloadManager(
|
|
// static
|
|
DownloadPrefs* DownloadPrefs::FromBrowserContext(
|
|
content::BrowserContext* context) {
|
|
+#if BUILDFLAG(ENABLE_CEF)
|
|
+ if (cef::IsAlloyRuntimeEnabled()) {
|
|
+ return static_cast<AlloyBrowserContext*>(context)->GetDownloadPrefs();
|
|
+ }
|
|
+#endif
|
|
return FromDownloadManager(BrowserContext::GetDownloadManager(context));
|
|
}
|
|
|
|
diff --git chrome/browser/printing/print_preview_dialog_controller.cc chrome/browser/printing/print_preview_dialog_controller.cc
|
|
index 84818167bce1..cdbd3f7f6f27 100644
|
|
--- chrome/browser/printing/print_preview_dialog_controller.cc
|
|
+++ chrome/browser/printing/print_preview_dialog_controller.cc
|
|
@@ -16,6 +16,7 @@
|
|
#include "base/strings/utf_string_conversions.h"
|
|
#include "build/branding_buildflags.h"
|
|
#include "build/build_config.h"
|
|
+#include "cef/libcef/features/features.h"
|
|
#include "chrome/browser/browser_process.h"
|
|
#include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
|
|
#include "chrome/browser/printing/print_view_manager.h"
|
|
@@ -451,8 +452,11 @@ WebContents* PrintPreviewDialogController::CreatePrintPreviewDialog(
|
|
content::HostZoomMap::Get(preview_dialog->GetSiteInstance())
|
|
->SetZoomLevelForHostAndScheme(print_url.scheme(), print_url.host(), 0);
|
|
PrintViewManager::CreateForWebContents(preview_dialog);
|
|
+
|
|
+#if !BUILDFLAG(ENABLE_CEF)
|
|
extensions::ChromeExtensionWebContentsObserver::CreateForWebContents(
|
|
preview_dialog);
|
|
+#endif
|
|
|
|
// Add an entry to the map.
|
|
preview_dialog_map_[preview_dialog] = initiator;
|
|
diff --git chrome/browser/resources/print_preview/ui/destination_dialog.html chrome/browser/resources/print_preview/ui/destination_dialog.html
|
|
index 56a6a8d8ee67..5fecf7ad1780 100644
|
|
--- chrome/browser/resources/print_preview/ui/destination_dialog.html
|
|
+++ chrome/browser/resources/print_preview/ui/destination_dialog.html
|
|
@@ -141,9 +141,7 @@
|
|
</print-preview-provisional-destination-resolver>
|
|
</div>
|
|
<div slot="button-container">
|
|
- <cr-button on-click="onOpenSettingsPrintPage_">
|
|
- $i18n{manage}
|
|
- </cr-button>
|
|
+ <div></div>
|
|
<cr-button class="cancel-button" on-click="onCancelButtonClick_">
|
|
$i18n{cancel}
|
|
</cr-button>
|
|
diff --git chrome/browser/resources/print_preview/ui/destination_select.html chrome/browser/resources/print_preview/ui/destination_select.html
|
|
index 4ec05c3fe7ba..90ff40b337bf 100644
|
|
--- chrome/browser/resources/print_preview/ui/destination_select.html
|
|
+++ chrome/browser/resources/print_preview/ui/destination_select.html
|
|
@@ -19,10 +19,6 @@
|
|
<option value="[[pdfDestinationKey_]]" hidden$="[[pdfPrinterDisabled]]">
|
|
$i18n{printToPDF}
|
|
</option>
|
|
- <option value="[[driveDestinationKey]]"
|
|
- hidden$="[[!driveDestinationKey]]">
|
|
- $i18n{printToGoogleDrive}
|
|
- </option>
|
|
<option value="noDestinations"
|
|
hidden$="[[!noDestinations]]" selected$="[[noDestinations]]">
|
|
$i18n{noDestinationsMessage}
|
|
diff --git chrome/browser/ui/webui/constrained_web_dialog_ui.cc chrome/browser/ui/webui/constrained_web_dialog_ui.cc
|
|
index b59728f623e3..6fd443962836 100644
|
|
--- chrome/browser/ui/webui/constrained_web_dialog_ui.cc
|
|
+++ chrome/browser/ui/webui/constrained_web_dialog_ui.cc
|
|
@@ -26,6 +26,8 @@
|
|
#include "chrome/browser/extensions/tab_helper.h"
|
|
#endif
|
|
|
|
+#include "cef/libcef/features/features.h"
|
|
+
|
|
using content::RenderFrameHost;
|
|
using content::WebContents;
|
|
using content::WebUIMessageHandler;
|
|
@@ -55,8 +57,10 @@ class ConstrainedWebDialogDelegateUserData
|
|
ConstrainedWebDialogUI::ConstrainedWebDialogUI(content::WebUI* web_ui)
|
|
: WebUIController(web_ui) {
|
|
#if BUILDFLAG(ENABLE_EXTENSIONS)
|
|
+#if !BUILDFLAG(ENABLE_CEF)
|
|
extensions::TabHelper::CreateForWebContents(web_ui->GetWebContents());
|
|
#endif
|
|
+#endif
|
|
}
|
|
|
|
ConstrainedWebDialogUI::~ConstrainedWebDialogUI() {
|
|
diff --git chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
|
|
index c3a1e237fd6c..7f1e500f853c 100644
|
|
--- chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
|
|
+++ chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
|
|
@@ -178,8 +178,10 @@ PdfPrinterHandler::PdfPrinterHandler(
|
|
sticky_settings_(sticky_settings) {}
|
|
|
|
PdfPrinterHandler::~PdfPrinterHandler() {
|
|
+#if !BUILDFLAG(ENABLE_CEF)
|
|
if (select_file_dialog_.get())
|
|
select_file_dialog_->ListenerDestroyed();
|
|
+#endif
|
|
}
|
|
|
|
void PdfPrinterHandler::Reset() {
|
|
@@ -226,12 +228,14 @@ void PdfPrinterHandler::StartPrint(
|
|
return;
|
|
}
|
|
|
|
+#if !BUILDFLAG(ENABLE_CEF)
|
|
if (select_file_dialog_ &&
|
|
select_file_dialog_->IsRunning(
|
|
platform_util::GetTopLevel(preview_web_contents_->GetNativeView()))) {
|
|
// Dialog is already showing.
|
|
return;
|
|
}
|
|
+#endif
|
|
|
|
DCHECK(!print_callback_);
|
|
print_callback_ = std::move(callback);
|
|
@@ -370,7 +374,11 @@ void PdfPrinterHandler::SelectFile(const base::FilePath& default_filename,
|
|
// If the directory is empty there is no reason to create it or use the
|
|
// default location.
|
|
if (path.empty()) {
|
|
+#if !BUILDFLAG(ENABLE_CEF)
|
|
OnDirectorySelected(default_filename, path);
|
|
+#else
|
|
+ ShowCefSaveAsDialog(initiator, default_filename, path);
|
|
+#endif
|
|
return;
|
|
}
|
|
|
|
@@ -380,8 +388,14 @@ void PdfPrinterHandler::SelectFile(const base::FilePath& default_filename,
|
|
base::ThreadPool::PostTaskAndReplyWithResult(
|
|
FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT},
|
|
base::BindOnce(&SelectSaveDirectory, path, default_path),
|
|
+#if !BUILDFLAG(ENABLE_CEF)
|
|
base::BindOnce(&PdfPrinterHandler::OnDirectorySelected,
|
|
weak_ptr_factory_.GetWeakPtr(), default_filename));
|
|
+#else
|
|
+ base::BindOnce(&PdfPrinterHandler::ShowCefSaveAsDialog,
|
|
+ weak_ptr_factory_.GetWeakPtr(), initiator,
|
|
+ default_filename));
|
|
+#endif
|
|
}
|
|
|
|
void PdfPrinterHandler::PostPrintToPdfTask() {
|
|
@@ -397,6 +411,7 @@ void PdfPrinterHandler::OnGotUniqueFileName(const base::FilePath& path) {
|
|
FileSelected(path, 0, nullptr);
|
|
}
|
|
|
|
+#if !BUILDFLAG(ENABLE_CEF)
|
|
void PdfPrinterHandler::OnDirectorySelected(const base::FilePath& filename,
|
|
const base::FilePath& directory) {
|
|
base::FilePath path = directory.Append(filename);
|
|
@@ -421,5 +436,36 @@ void PdfPrinterHandler::OnDirectorySelected(const base::FilePath& filename,
|
|
&file_type_info, 0, base::FilePath::StringType(),
|
|
platform_util::GetTopLevel(preview_web_contents_->GetNativeView()), NULL);
|
|
}
|
|
+#else
|
|
+void PdfPrinterHandler::ShowCefSaveAsDialog(content::WebContents* initiator,
|
|
+ const base::FilePath& filename,
|
|
+ const base::FilePath& directory) {
|
|
+ CefRefPtr<CefBrowserHostImpl> cef_browser =
|
|
+ CefBrowserHostImpl::GetBrowserForContents(initiator);
|
|
+ if (!cef_browser)
|
|
+ return;
|
|
+
|
|
+ base::FilePath path = directory.Append(filename);
|
|
+
|
|
+ CefFileDialogRunner::FileChooserParams params;
|
|
+ params.mode = blink::mojom::FileChooserParams::Mode::kSave;
|
|
+ params.default_file_name = path;
|
|
+ params.accept_types.push_back(CefString(path.Extension()));
|
|
+
|
|
+ cef_browser->RunFileChooser(
|
|
+ params, base::Bind(&PdfPrinterHandler::SaveAsDialogDismissed,
|
|
+ weak_ptr_factory_.GetWeakPtr()));
|
|
+}
|
|
+
|
|
+void PdfPrinterHandler::SaveAsDialogDismissed(
|
|
+ int selected_accept_filter,
|
|
+ const std::vector<base::FilePath>& file_paths) {
|
|
+ if (file_paths.size() == 1) {
|
|
+ FileSelected(file_paths[0], 0, nullptr);
|
|
+ } else {
|
|
+ FileSelectionCanceled(nullptr);
|
|
+ }
|
|
+}
|
|
+#endif
|
|
|
|
} // namespace printing
|
|
diff --git chrome/browser/ui/webui/print_preview/pdf_printer_handler.h chrome/browser/ui/webui/print_preview/pdf_printer_handler.h
|
|
index 0881b3dd9303..4df6883d4d05 100644
|
|
--- chrome/browser/ui/webui/print_preview/pdf_printer_handler.h
|
|
+++ chrome/browser/ui/webui/print_preview/pdf_printer_handler.h
|
|
@@ -11,9 +11,14 @@
|
|
#include "base/memory/ref_counted.h"
|
|
#include "base/memory/weak_ptr.h"
|
|
#include "base/strings/string16.h"
|
|
+#include "cef/libcef/features/features.h"
|
|
#include "chrome/browser/ui/webui/print_preview/printer_handler.h"
|
|
#include "ui/shell_dialogs/select_file_dialog.h"
|
|
|
|
+#if BUILDFLAG(ENABLE_CEF)
|
|
+#include "cef/libcef/browser/browser_host_impl.h"
|
|
+#endif
|
|
+
|
|
namespace base {
|
|
class FilePath;
|
|
class RefCountedMemory;
|
|
@@ -76,17 +81,28 @@ class PdfPrinterHandler : public PrinterHandler,
|
|
// The print preview web contents. Protected so unit tests can access it.
|
|
content::WebContents* const preview_web_contents_;
|
|
|
|
+#if !BUILDFLAG(ENABLE_CEF)
|
|
// The underlying dialog object. Protected so unit tests can access it.
|
|
scoped_refptr<ui::SelectFileDialog> select_file_dialog_;
|
|
+#endif
|
|
|
|
private:
|
|
void PostPrintToPdfTask();
|
|
void OnGotUniqueFileName(const base::FilePath& path);
|
|
|
|
+#if !BUILDFLAG(ENABLE_CEF)
|
|
// Prompts the user to save the file. The dialog will default to saving
|
|
// the file with name |filename| in |directory|.
|
|
void OnDirectorySelected(const base::FilePath& filename,
|
|
const base::FilePath& directory);
|
|
+#else
|
|
+ void ShowCefSaveAsDialog(content::WebContents* initiator,
|
|
+ const base::FilePath& filename,
|
|
+ const base::FilePath& directory);
|
|
+
|
|
+ void SaveAsDialogDismissed(int selected_accept_filter,
|
|
+ const std::vector<base::FilePath>& file_paths);
|
|
+#endif
|
|
|
|
Profile* const profile_;
|
|
PrintPreviewStickySettings* const sticky_settings_;
|
|
diff --git chrome/browser/ui/webui/print_preview/print_preview_handler.cc chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
|
index 1d2254cefc2c..7aa5fe7f11a4 100644
|
|
--- chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
|
+++ chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
|
@@ -24,6 +24,7 @@
|
|
#include "base/memory/ref_counted_memory.h"
|
|
#include "base/values.h"
|
|
#include "build/build_config.h"
|
|
+#include "cef/libcef/features/features.h"
|
|
#include "chrome/browser/app_mode/app_mode_utils.h"
|
|
#include "chrome/browser/bad_message.h"
|
|
#include "chrome/browser/browser_process.h"
|
|
@@ -1243,7 +1244,7 @@ PrinterHandler* PrintPreviewHandler::GetPrinterHandler(
|
|
}
|
|
return extension_printer_handler_.get();
|
|
}
|
|
-#if BUILDFLAG(ENABLE_SERVICE_DISCOVERY)
|
|
+#if BUILDFLAG(ENABLE_SERVICE_DISCOVERY) && !BUILDFLAG(ENABLE_CEF)
|
|
if (printer_type == PrinterType::kPrivet) {
|
|
if (!privet_printer_handler_) {
|
|
privet_printer_handler_ =
|
|
@@ -1251,6 +1252,9 @@ PrinterHandler* PrintPreviewHandler::GetPrinterHandler(
|
|
}
|
|
return privet_printer_handler_.get();
|
|
}
|
|
+#else // !BUILDFLAG(ENABLE_SERVICE_DISCOVERY)
|
|
+ if (printer_type == PrinterType::kPrivet)
|
|
+ return nullptr;
|
|
#endif
|
|
if (printer_type == PrinterType::kPdf) {
|
|
if (!pdf_printer_handler_) {
|
|
@@ -1323,6 +1327,7 @@ void PrintPreviewHandler::OnPrintResult(const std::string& callback_id,
|
|
}
|
|
|
|
void PrintPreviewHandler::RegisterForGaiaCookieChanges() {
|
|
+#if !BUILDFLAG(ENABLE_CEF)
|
|
DCHECK(!identity_manager_);
|
|
cloud_print_enabled_ =
|
|
!base::Contains(printer_type_deny_list_, PrinterType::kCloud) &&
|
|
@@ -1339,6 +1344,7 @@ void PrintPreviewHandler::RegisterForGaiaCookieChanges() {
|
|
|
|
identity_manager_ = IdentityManagerFactory::GetForProfile(profile);
|
|
identity_manager_->AddObserver(this);
|
|
+#endif
|
|
}
|
|
|
|
void PrintPreviewHandler::UnregisterForGaiaCookieChanges() {
|
|
diff --git chrome/browser/ui/webui/print_preview/print_preview_ui.cc chrome/browser/ui/webui/print_preview/print_preview_ui.cc
|
|
index 43cddc1495e9..c4307c9f7292 100644
|
|
--- chrome/browser/ui/webui/print_preview/print_preview_ui.cc
|
|
+++ chrome/browser/ui/webui/print_preview/print_preview_ui.cc
|
|
@@ -28,6 +28,7 @@
|
|
#include "base/task/post_task.h"
|
|
#include "base/values.h"
|
|
#include "build/build_config.h"
|
|
+#include "cef/libcef/features/features.h"
|
|
#include "chrome/browser/browser_process.h"
|
|
#include "chrome/browser/browser_process_platform_part.h"
|
|
#include "chrome/browser/printing/background_printing_manager.h"
|
|
@@ -84,12 +85,16 @@ namespace printing {
|
|
|
|
namespace {
|
|
|
|
+#if BUILDFLAG(ENABLE_CEF)
|
|
+const char kBasicPrintShortcut[] = "";
|
|
+#else
|
|
#if defined(OS_MACOSX)
|
|
// U+0028 U+21E7 U+2318 U+0050 U+0029 in UTF8
|
|
const char kBasicPrintShortcut[] = "\x28\xE2\x8c\xA5\xE2\x8C\x98\x50\x29";
|
|
#elif !defined(OS_CHROMEOS)
|
|
const char kBasicPrintShortcut[] = "(Ctrl+Shift+P)";
|
|
#endif
|
|
+#endif
|
|
|
|
#if !BUILDFLAG(OPTIMIZE_WEBUI)
|
|
constexpr char kGeneratedPath[] =
|