Add the ability to (issue #236):

1. Disable pack file loading via CefSettings.pack_loading_disabled.
2. Customize pack file load paths via CefSettings.pack_file_path and CefSettings.locales_dir_path.
3. Provide custom resource bundle handling via CefResourceBundleHandler.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@501 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt
2012-02-16 17:11:49 +00:00
parent def9fdb540
commit 1a092a0c1a
34 changed files with 795 additions and 236 deletions

View File

@@ -12,10 +12,25 @@
#include "libcef_dll/ctocpp/app_ctocpp.h"
#include "libcef_dll/ctocpp/proxy_handler_ctocpp.h"
#include "libcef_dll/ctocpp/resource_bundle_handler_ctocpp.h"
// VIRTUAL METHODS - Body may be edited by hand.
CefRefPtr<CefResourceBundleHandler> CefAppCToCpp::GetResourceBundleHandler() {
if (CEF_MEMBER_MISSING(struct_, get_resource_bundle_handler))
return NULL;
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
// Execute
cef_resource_bundle_handler_t* _retval = struct_->get_resource_bundle_handler(
struct_);
// Return type: refptr_same
return CefResourceBundleHandlerCToCpp::Wrap(_retval);
}
CefRefPtr<CefProxyHandler> CefAppCToCpp::GetProxyHandler() {
if (CEF_MEMBER_MISSING(struct_, get_proxy_handler))
return NULL;

View File

@@ -32,6 +32,8 @@ class CefAppCToCpp
virtual ~CefAppCToCpp() {}
// CefApp methods
virtual CefRefPtr<CefResourceBundleHandler> GetResourceBundleHandler(
) OVERRIDE;
virtual CefRefPtr<CefProxyHandler> GetProxyHandler() OVERRIDE;
};

View File

@@ -0,0 +1,56 @@
// Copyright (c) 2012 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.
//
// ---------------------------------------------------------------------------
//
// This file was generated by the CEF translator tool. If making changes by
// hand only do so within the body of existing method and function
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
#include "libcef_dll/ctocpp/resource_bundle_handler_ctocpp.h"
// VIRTUAL METHODS - Body may be edited by hand.
bool CefResourceBundleHandlerCToCpp::GetLocalizedString(int message_id,
CefString& string) {
if (CEF_MEMBER_MISSING(struct_, get_localized_string))
return false;
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
// Execute
int _retval = struct_->get_localized_string(struct_,
message_id,
string.GetWritableStruct());
// Return type: bool
return _retval?true:false;
}
bool CefResourceBundleHandlerCToCpp::GetDataResource(int resource_id,
void*& data, size_t& data_size) {
if (CEF_MEMBER_MISSING(struct_, get_data_resource))
return false;
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
// Execute
int _retval = struct_->get_data_resource(struct_,
resource_id,
&data,
&data_size);
// Return type: bool
return _retval?true:false;
}
#ifndef NDEBUG
template<> long CefCToCpp<CefResourceBundleHandlerCToCpp,
CefResourceBundleHandler, cef_resource_bundle_handler_t>::DebugObjCt = 0;
#endif

View File

@@ -0,0 +1,48 @@
// Copyright (c) 2012 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.
//
// ---------------------------------------------------------------------------
//
// This file was generated by the CEF translator tool. If making changes by
// hand only do so within the body of existing method and function
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
#ifndef CEF_LIBCEF_DLL_CTOCPP_RESOURCE_BUNDLE_HANDLER_CTOCPP_H_
#define CEF_LIBCEF_DLL_CTOCPP_RESOURCE_BUNDLE_HANDLER_CTOCPP_H_
#pragma once
#ifndef BUILDING_CEF_SHARED
#pragma message("Warning: "__FILE__" may be accessed DLL-side only")
#else // BUILDING_CEF_SHARED
#include "include/cef_resource_bundle_handler.h"
#include "include/capi/cef_resource_bundle_handler_capi.h"
#include "include/cef_browser.h"
#include "include/capi/cef_browser_capi.h"
#include "include/cef_stream.h"
#include "include/capi/cef_stream_capi.h"
#include "libcef_dll/ctocpp/ctocpp.h"
// Wrap a C structure with a C++ class.
// This class may be instantiated and accessed DLL-side only.
class CefResourceBundleHandlerCToCpp
: public CefCToCpp<CefResourceBundleHandlerCToCpp, CefResourceBundleHandler,
cef_resource_bundle_handler_t> {
public:
explicit CefResourceBundleHandlerCToCpp(cef_resource_bundle_handler_t* str)
: CefCToCpp<CefResourceBundleHandlerCToCpp, CefResourceBundleHandler,
cef_resource_bundle_handler_t>(str) {}
virtual ~CefResourceBundleHandlerCToCpp() {}
// CefResourceBundleHandler methods
virtual bool GetLocalizedString(int message_id, CefString& string) OVERRIDE;
virtual bool GetDataResource(int resource_id, void*& data,
size_t& data_size) OVERRIDE;
};
#endif // BUILDING_CEF_SHARED
#endif // CEF_LIBCEF_DLL_CTOCPP_RESOURCE_BUNDLE_HANDLER_CTOCPP_H_