mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Add plugin placeholder and policy support (issue #1708)
- Default plugin loading policy can be specified using the new `--plugin-policy=[allow|block|detect]` command-line flag. - Move CefRequestHandler::OnBeforePluginLoad to CefRequestContextHandler and add a new policy argument that supports different actions (allow, block, detect, disable) on a per-plugin-instance basis. - Add CefContextMenuHandler::RunContextMenu for providing a custom context menu implementation. - Add CefResourceBundleHandler::GetDataResourceForScale for returning scaled resources (issue #1272). - Add CefResourceBundle for retrieving resources from the resource bundle (*.pak) files loaded by CEF during startup or via the CefResourceBundleHandler. - Linux: Fix Debug build IO access warning with CefGetMimeType. - cef_unittests: Move the refcounting implementation from TestHandler to subclasses in order to support interface inheritance from subclasses.
This commit is contained in:
47
libcef/common/resource_bundle_impl.cc
Normal file
47
libcef/common/resource_bundle_impl.cc
Normal file
@ -0,0 +1,47 @@
|
||||
// Copyright (c) 2015 The Chromium Embedded Framework Authors. All rights
|
||||
// reserved. Use of this source code is governed by a BSD-style license that can
|
||||
// be found in the LICENSE file.
|
||||
|
||||
#include "libcef/common/resource_bundle_impl.h"
|
||||
|
||||
#include "ui/base/resource/resource_bundle.h"
|
||||
|
||||
CefResourceBundleImpl::CefResourceBundleImpl() {
|
||||
}
|
||||
|
||||
CefString CefResourceBundleImpl::GetLocalizedString(int string_id) {
|
||||
if (!ui::ResourceBundle::HasSharedInstance())
|
||||
return CefString();
|
||||
|
||||
return ui::ResourceBundle::GetSharedInstance().GetLocalizedString(string_id);
|
||||
}
|
||||
|
||||
bool CefResourceBundleImpl::GetDataResource(int resource_id,
|
||||
void*& data,
|
||||
size_t& data_size) {
|
||||
return GetDataResourceForScale(resource_id, SCALE_FACTOR_NONE, data,
|
||||
data_size);
|
||||
}
|
||||
|
||||
bool CefResourceBundleImpl::GetDataResourceForScale(int resource_id,
|
||||
ScaleFactor scale_factor,
|
||||
void*& data,
|
||||
size_t& data_size) {
|
||||
if (!ui::ResourceBundle::HasSharedInstance())
|
||||
return false;
|
||||
|
||||
const base::StringPiece& result =
|
||||
ui::ResourceBundle::GetSharedInstance().GetRawDataResourceForScale(
|
||||
resource_id, static_cast<ui::ScaleFactor>(scale_factor));
|
||||
if (result.empty())
|
||||
return false;
|
||||
|
||||
data = const_cast<char*>(result.data());
|
||||
data_size = result.size();
|
||||
return true;
|
||||
}
|
||||
|
||||
// static
|
||||
CefRefPtr<CefResourceBundle> CefResourceBundle::GetGlobal() {
|
||||
return new CefResourceBundleImpl();
|
||||
}
|
Reference in New Issue
Block a user