Giter Club home page Giter Club logo

cef's Introduction

The Chromium Embedded Framework (CEF) is a simple framework for embedding Chromium-based browsers in other applications.

Quick Links

Introduction

CEF is a BSD-licensed open source project founded by Marshall Greenblatt in 2008 and based on the Google Chromium project. Unlike the Chromium project itself, which focuses mainly on Google Chrome application development, CEF focuses on facilitating embedded browser use cases in third-party applications. CEF insulates the user from the underlying Chromium and Blink code complexity by offering production-quality stable APIs, release branches tracking specific Chromium releases, and binary distributions. Most features in CEF have default implementations that provide rich functionality while requiring little or no integration work from the user. There are currently over 100 million installed instances of CEF around the world embedded in products from a wide range of companies and industries. A partial list of companies and products using CEF is available on the CEF Wikipedia page. Some use cases for CEF include:

  • Embedding an HTML5-compliant Web browser control in an existing native application.
  • Creating a light-weight native “shell” application that hosts a user interface developed primarily using Web technologies.
  • Rendering Web content “off-screen” in applications that have their own custom drawing frameworks.
  • Acting as a host for automated testing of existing Web properties and applications.

CEF supports a wide range of programming languages and operating systems and can be easily integrated into both new and existing applications. It was designed from the ground up with both performance and ease of use in mind. The base framework includes C and C++ programming interfaces exposed via native libraries that insulate the host application from Chromium and Blink implementation details. It provides close integration between the browser and the host application including support for custom plugins, protocols, JavaScript objects and JavaScript extensions. The host application can optionally control resource loading, navigation, context menus, printing and more, while taking advantage of the same performance and HTML5 technologies available in the Google Chrome Web browser.

Numerous individuals and organizations contribute time and resources to support CEF development, but more involvement from the community is always welcome. This includes support for both the core CEF project and external projects that integrate CEF with additional programming languages and frameworks (see the "External Projects" section below). If you are interested in donating time to help with CEF development please see the "Helping Out" section below. If you are interested in donating money to support general CEF development and infrastructure efforts please visit the CEF Donations page.

Getting Started

Users new to CEF development should start by reading the Tutorial Wiki page for an overview of CEF usage and then proceed to the GeneralUsage Wiki page for a more in-depth discussion or architectural and usage issues. Complete API documentation is available here. CEF support and related discussion is available on the CEF Forum.

Binary Distributions

Binary distributions, which include all files necessary to build a CEF-based application, are available on the Downloads page. Binary distributions are stand-alone and do not require the download of CEF or Chromium source code. Symbol files for debugging binary distributions of libcef can also be downloaded from the above links.

Source Distributions

The CEF project is an extension of the Chromium project. CEF maintains development and release branches that track Chromium branches. CEF source code can be downloaded, built and packaged manually or with automated tools. Visit the BranchesAndBuilding Wiki page for more information.

External Projects

The base CEF framework includes support for the C and C++ programming languages. Thanks to the hard work of external maintainers CEF can integrate with a number of other programming languages and frameworks. These external projects are not maintained by CEF so please contact the respective project maintainer if you have any questions or issues.

If you're the maintainer of a project not listed above and would like your project listed here please either post to the CEF Forum or contact Marshall directly.

Helping Out

CEF is still very much a work in progress. Some ways that you can help out:

- Vote for issues in the CEF issue tracker that are important to you. This helps with development prioritization.

- Report any bugs that you find or feature requests that are important to you. Make sure to first search for existing issues before creating new ones. Please use the CEF Forum and not the issue tracker for usage questions. Each CEF issue should:

  • Include the CEF revision or binary distribution version.
  • Include information about your OS and compiler version.
  • If the issue is a bug please provide detailed reproduction information.
  • If the issue is a feature please describe why the feature is beneficial.

- Write unit tests for new or existing functionality.

- Pull requests and patches are welcome. View open issues in the CEF issue tracker or search for TODO(cef) in the source code for ideas.

If you would like to contribute source code changes to CEF please follow the below guidelines:

- Create or find an appropriate issue for each distinct bug, feature or change.

- Submit a pull request or create a patch with your changes and attach it to the CEF issue. Changes should:

  • Be submitted against the current CEF master branch unless explicitly fixing a bug in a CEF release branch.
  • Follow the style of existing CEF source files. In general CEF uses the Chromium C++ style guide.
  • Include new or modified unit tests as appropriate to the functionality.
  • Not include unnecessary or unrelated changes.

cef's People

Contributors

24aligre avatar ajax16384 avatar amaitland avatar andytzeng avatar brainy avatar bulldy80 avatar camarie-bd avatar cztomczak avatar danieln-spotify avatar dankegel avatar dmitry-azaraev avatar dziemborowicz avatar ejorge31 avatar fxb avatar icedtoast avatar jbleyaert avatar jpark37 avatar lvsti avatar magreenblatt avatar masakotoda avatar mlafon avatar msisov avatar ndesktop avatar nik-sp avatar schetle avatar sergio-nsk avatar shagkur avatar tonttu avatar ujpv avatar xforce avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cef's Issues

Expose image creation/manipulation routines

Original report by me.


Original issue 29 created by magreenblatt on 2009-06-03T23:55:21.000Z:

Chromium embeds the libjpeg and libpng projects. It would be useful if
libcef.dll exposed the image manipulation functions so that client
applications could use them without having to load/distribute libjpeg and
libpng separately. Additionally, it would be nice if CEF provided a CEF-ish
C++ API for wrapping the C APIs. And, finally, libcef should provide
convenience functions for in-memory conversion between common image types
and Win32 HBITMAPs.

CEF client does not handle modal Javascript popups correctly

Original report by Anonymous.


Original issue 56 created by johnny.b.lai on 2009-09-22T08:43:42.000Z:

What steps will reproduce the problem?

  1. Use cefclient (r42) to navigate to
    http://javascript.about.com/library/blmodal.htm
  2. To trigger the sample click "click here" of the last paragraph. ("...
    your particular browser then click here and if your browser supports modal
    windows ...").
  3. Popup window is non-modal and is the wrong size.

What is the expected output? What do you see instead?
The popup window should be modal and should be 250x255 pixels.

What version of the product are you using? On what operating system?
cefclient (r42), downloaded directly from the website.

Please provide any additional information below.
I had a go at hacking the code to see if I could figure out the issue. I
made some progress, but I do not have a complete fix yet.

Modality:
* Program enters "BrowserWebViewDelegate::runModal()" as expected.
Unfortunately "MessageLoop::current()->Run();" exits immediately if single-
threading is used. If mutli-threading is used, it does not exit.
* In "BrowserWebViewDelegate::runModal()" popup windows are being disabled.
Perhaps it should be the other way round?

Popup size:
* "BrowserWebViewDelegate::setWindowRect(const WebRect& rect)" is being
called, but the call is ignored.

Linux Support

Original report by Anonymous.


Original issue 40 created by mark.renouf on 2009-07-02T16:20:19.000Z:

Google Chrome on Linux has hit the dev channel. I would like to know for my
own evaluation where linux support might fall on the roadmap.

Thanks!

Flicker when size the plugin window

Original report by Anonymous.


Original issue 35 created by godtime123 on 2009-06-18T07:02:53.000Z:

I use embed like this ,I want to
use width="100%" height="100%" to full filling my html tabbar content,
when I change the plugin window size, plugin window flicker a lot.
but I not use width=100% hegiht=100% ,there are OK.
Please see accessory ,size the window,you can see.
Sorry for my poor english!

Feature: eval_javascript

Original report by Anonymous.


Original issue 32 created by bamaboy1217 on 2009-06-07T17:23:22.000Z:

I'm not sure if this can be added from your end, (I'm sure its a deeply
chromium thing). But there is a frame->exec_script, I'd like to see a
frame->eval_script. Something like
frame->eval_script('document.window.title'); (trivial example since this
can be gotten anyway).

If not possible no biggy, just thought it would make a nice addition.

Expose compression routines

Original report by me.


Original issue 30 created by magreenblatt on 2009-06-03T23:58:40.000Z:

Chromium embeds the zlib and bzip2 projects. It would be useful if
libcef.dll exposed the compression functions so that client applications
could use them without having to load/distribute zliband bzip2 separately.
Additionally, it would be nice if CEF provided a CEF-ish C++ API for
wrapping the C APIs. And, finally, libcef should provide convenience
functions for in-memory compression/decompression of files and CefStreams.

DOMParser parseFromString returns no child nodes

Original report by me.


Original issue 27 created by magreenblatt on 2009-06-02T20:02:44.000Z:

Consider the following JavaScript:

var parser = new DOMParser();
var doc = parser.parseFromString("", "text/xml");
alert(doc.childNodes.length);

doc.childNodes.length should be 1 but at rev 27 it shows as 0. This
problem does not occur in test_shell at Chromium rev 17397. Update CEF to
Chromium rev 17397 and further debug the problem if necessary.

Carry over modifications to request object in CefHandler::HandleBeforeResourceLoad()

Original report by me.


Original issue 41 created by magreenblatt on 2009-07-05T05:49:07.000Z:

Allow specification of header values and character set for the resource
load response. This is necessary if the client wants to specify cookie or
no-cache headers, for instance. If |mimeType| and/or |charSet| are empty
CEF will try to find the appropriate header in |headerMap| and set the
values accordingly.

virtual RetVal HandleBeforeResourceLoad(CefRefPtr browser,
CefRefPtr request,
std::wstring& redirectUrl,
CefRefPtr& resourceStream,
HeaderMap& headerMap,
std::wstring& mimeType,
std::wstring& charSet,
int loadFlags) =0;

cef_create_projects.bat fails; Error: Could not automatically locate src directory.

Original report by Anonymous.


Original issue 73 created by vince.price.mtg on 2010-02-20T17:55:08.000Z:

Trying to build CEF from source version 71 for visual studio 2005

Instead of a .sln created, I get an error in cygwin:
Error: Could not automatically locate src directory. This is a temporary
Chromium feature that will be removed. Use --depth as a workaround.

What is going on? I have walked through the python files and cant seem to
find a clue. The depth parameter is a little confusing although maybe I
have to try to figure it out.

What version of the product are you using? On what operating system?
XP SP2, CEF

Please provide any additional information below.

Crash in AsyncResolver::Resolve of scheme_impl.cc when window refreshing is blocked

Original report by Shiming He (Bitbucket: Shiming He).


Original issue 65 created by heshiming on 2009-12-07T03:22:18.000Z:

Steps to reproduce:
Set a timer (WM_TIMER) to automatically navigate to a new URL in an interval,
through scheme handler. When the automatic refreshing is running, press mouse
button to start dragging the window, so that it blocks several cycles of
refreshing. When the mouse button is released, it crashes
AsyncResolver::Resolve of scheme_impl.cc, because |owner_| = NULL. The error
is: Access violation reading location 0x00000008 .

Somehow |owner_| is destroyed before AsyncResolver::Resolve gets to run.

Some other details are in this thread:
http://www.magpcss.org/ceforum/viewtopic.php?f=6&t=66\#p154 , including
proposed changes and demo executable.

Add URLFetcher support

Original report by me.


Original issue 51 created by magreenblatt on 2009-08-18T18:25:15.000Z:

URLFetcher in chrome/browser/net/url_fetcher.h is a class that
transparently handles the loading of a URL resource and notifies a delegate
when the loading is complete. This would be a useful capability to provide
as part of CEF.

Expose libxml2 functions from libcef

Original report by me.


Original issue 28 created by magreenblatt on 2009-06-03T23:50:26.000Z:

Chromium embeds the libxml2 project, among others. It would be useful it
libcef.dll exposed the libxml2 functions so that client applications could
use them without having to load/distribute libxml2 separately.
Additionally, it would be nice if CEF provided a CEF-ish C++ API for
wrapping the libcef2 C API.

Fast reload of page sometimes will crash cef

Original report by Anonymous.


Original issue 70 created by tturner%[email protected] on 2010-01-22T21:05:46.000Z:

I have found a bug if you reload the page really fast it will crash.

It will crash in browser_resource_loader_bridge.cc

void AsyncCancel() {
// This can be null in cases where the request is already done.
if (!resource_stream_.get() && !request_.get())
return;

request_->Cancel(); // <--- crashes here
Done();
}

To fix it change

if (!resource_stream_.get() && !request_.get()) to if
(!resource_stream_.get() || !request_.get())

libcef::NPAPI::PluginInstance Access Violation

Original report by Anonymous.


Original issue 31 created by tux316 on 2009-06-05T06:12:55.000Z:

CEF Revision 28, Chrome R@ 17397

Error Message:

Unhandled exception at 0x5c2f523c in cefclient.exe: 0xC0000005: Access
violation reading location 0x00000070.

How to reproduce:
Open the cefclient.exe (I have tried this only on the Debug build)

Go to http://www.nyaatorrents.org/ and click "Login" it triggers a crash.
I have attached the call stack. This seems to be related to the flash plugin.

Running Windows 7 RC x64

Window object binding causes memory leaks

Original report by Anonymous.


Original issue 72 created by tturner%[email protected] on 2010-02-12T17:11:41.000Z:

Memory Keeps going up with embed tags

Instructions - using CEF v71, Chromium v38776

1 Use cefclient to navigate to embed-text.html

  • Memory usage for cefclient goes up considerably
    2 Go back to previous page
    3 Go forward to embed-text.html
  • Memory usage for cefclient goes up by 10 to 15 MB

4 Repeat steps 2 to 3

  • Memory keeps going up by ~10 MB each time the test page is loaded

* This seems to happen when there are a lot of or <iframe> tags on
a page.
* It happens when the embed src is an svg, html or text file (i.e.
image/svg+xml,
text/html, text/plain)
* It does not happen when the embed src is an image (image/png for
example)

At a guess I would say that the embedded contents are not getting released
along with
the containing page (though there is no memory leak when the program exits,
so that
memory is released somewhere).

Notes

* test_shell does not exhibit this problem.
* If the body of libcef/browser_webview_delegate.cc/didClearWindowObject()
is commented out,
cefclient no longer exhibits the problem. So it is probably something to
do with
getting a V8 context for each of the embedded frames.

MAC porting of CEF

Original report by Anonymous.


Original issue 68 created by killboy1978 on 2009-12-31T13:33:07.000Z:

I'm very interesting about the porting of CEF on apple platform. Does anyone start the porting
procedure, or can help me about how to do it?
I didn't found any information about searching on the web.

Rebuild issue

Original report by Anonymous.


Original issue 43 created by Rough.vanZolo on 2009-07-15T00:26:16.000Z:

Problem:

Rebuild any cef project will cause rebuild dependency libs in Chromium.

What is the expected output? What do you see instead?

Rebuild command should just rebuild the current project.

What version of the product are you using? On what operating system?

r31.

Please provide any additional information below.

I think this is caused that you are using inherited project property sheets
from Chromium.

CefBrowserImpl::GetText returns empty string

Original report by Anonymous.


Original issue 59 created by arneolavh on 2009-10-19T01:03:17.000Z:

What steps will reproduce the problem?

  1. run the cefclient project after modifying "AppGetBrowser()-

GetMainFrame()->ViewSource();" into "std::wstring temp = AppGetBrowser()-
GetMainFrame()->GetText();"
2.
3.

What is the expected output? What do you see instead?
The frame text

What version of the product are you using? On what operating system?

Please provide any additional information below.
in CefBrowserImpl::GetText()
webkit_glue::DumpDocumentText(web_frame);
should be
return webkit_glue::DumpDocumentText(web_frame);

Const issue with new release

Original report by Anonymous.


Original issue 36 created by bamaboy1217 on 2009-06-24T05:58:56.000Z:

There's an issue with the v8 stuff with the c interface.

You'll notice that the execute function requires args to be a constant;
however, if you want to get any type of information out of those args you
would need to do args[0]->get_string_value(args[0]) for example. This is
not allowed since the get_string_value requires non-const structure.

Essentially since none of its member functions don't have const self's you
cant use any of its functions.


int (CEF_CALLBACK *execute_function)(struct _cef_v8value_t* self,
struct _cef_v8value_t* object, size_t argumentCount,
const struct _cef_v8value_t** arguments, struct _cef_v8value_t** retval,
cef_string_t* exception);

For now we're working around using const in the get_string_value since it
really changes nothing on the compiler side, but that should be an easy
fix. Just the side effects of making updates.

Thanks
Alex

Browser and Web Widgets Stealing Focus.

Original report by Anonymous.


Original issue 34 created by tux316 on 2009-06-12T04:28:26.000Z:

Currently, in CEF Revision 28, when a browser's navigation function is
called (GetBrowser->GetFrame->load_url("http://www.google.com/")), the
focus is forced into that window.

While creating a patch for this, I also encountered another issue, where a
web widget could force the focus back to the browser (ie www.google.com and
www.yahoo.com).

To offset this I have created 2 new handlers.

C++ Interface:
HandleSetFocus
HandleSetFocusWidget

C Interface:
handle_set_focus
handle_set_focus_widget

HandleSetFocus/handle_set_focus:
If the end-user wishes to stop the browser from stealing focus on every
navigation, he or she must return RV_HANDLED.

HandleSetFocusWidget/handle_set_focus_widget:
Some websites such as google and yahoo, force the focus on the search box
upon load. If the end-user wishes to stop such behavior, he or she needs
to return RV_HANDLED.

I have tested this on my current project and have found it to be successful.

CEF process memory continues to increase as navigating

Original report by Shiming He (Bitbucket: Shiming He).


Original issue 66 created by heshiming on 2009-12-07T08:48:06.000Z:

What steps will reproduce the problem?

  1. Launch the cefclient program
  2. Try use it for a while and navigating to a lot of URLs, such as using
    google, search for some keywords, and turn the page over and over.
  3. Observe cefclient.exe's memory in task manager, it's always increasing as
    new pages load.

This could be a memory leak. If it wasn't, CEF should at least provide a
method to clear the cache, and control memory usage.

CEF: revcomment 64., chromium: revcomment 33.957

Inconsistent new line

Original report by Anonymous.


Original issue 45 created by Rough.vanZolo on 2009-07-15T00:52:49.000Z:

Problem:

Some files use "\r\n" as new lines but some others use "\n" instead. This
causes Visual Studio always ask to convert new line format. Many new line
format changes will mess up svn status of files.

What is the expected output? What do you see instead?

Just like Chromium, all files uses "\r\n" as new line.

What version of the product are you using? On what operating system?

r.31

Please provide any additional information below.

Need to rebuild dependency libs of Chromium

Original report by Anonymous.


Original issue 44 created by Rough.vanZolo on 2009-07-15T00:32:34.000Z:

Problem:

I built chrome solution at first. And then I build cef. But it needs to
build some dependency libs of Chromium again even though they have been
built before in chrome solution.

What is the expected output? What do you see instead?

Cef can use the existing build output of Chrome solution.

What version of the product are you using? On what operating system?

r.31

Please provide any additional information below.

Load Failed -310

Original report by Anonymous.


Original issue 64 created by ntpcorp on 2009-11-24T20:14:18.000Z:

What steps will reproduce the problem?

  1. Navigate to http://www.masteringchemistry.com
  2. Logon
    3.

What is the expected output? What do you see instead?

Opens site.

Load Failed

Load of URL http://login.pearsoncmg.com/sso/SSOServlet2?
cmd=chk_login&siteid=6241&okurl=http://session.masteringchemistry.com/login
%3FcheckLogin%3Ddone&loginurl=http://session.masteringchemistry.com/login%
3FcheckLogin%3Ddone&errurl=http://session.masteringchemistry.com/login%
3FcheckLogin%3Ddonefailed with error code -310.

What version of the product are you using? On what operating system?

CEF Client r64.
XP SP3

Please provide any additional information below.

Works with Chromium test_shell application build 31062.

Tried following:

Changing UserAgent to that of Chrome to rule out any type of browser
detection and alternate function calls. Same results as above.

Changed to "static const int kMaxRedirects = 40;" in url_request.cc.
Results in the following:

Load Failed

Load of URL http://session.masteringchemistry.com/myctfailed with error
code -310.

URL in address bar of "http://session.masteringchemistry.com/myct",
hitting reload button causes site to work as expected.

Ability to handle keyboard events

Original report by Anonymous.


Original issue 63 created by cpinfold.joinerysoft on 2009-11-11T15:08:32.000Z:

In order to allow embedders to process key presses, it would be useful if the
CEF API exposed keyboard events via a CefClient handler.

We have embedded CEF into an MFC application, and it would seem that the
underlying browser will consume keyboard messages before the containing MFC
window has a chance to.

The attached patch is a proposed change to allow this; it is working for us.

Build cefclient with vc 2005 express edition

Original report by Anonymous.


Original issue 67 created by k.caining on 2009-12-25T10:42:56.000Z:

I have remove plugin_test and clientplugin files and successfully compile
the cefclient in vc 2005. However, when linking, I got this error:

1>libcef_dll_wrapper.lib(read_handler_cpptoc.obj) : error LNK2001:
unresolved external symbol "void __cdecl std::_Throw(class
stdext::exception const &)" (?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
1>libcef_dll_wrapper.lib(handler_cpptoc.obj) : error LNK2001: unresolved
external symbol "void __cdecl std::_Throw(class stdext::exception const &)"
(?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
1>libcef_dll_wrapper.lib(transfer_util.obj) : error LNK2001: unresolved
external symbol "void __cdecl std::_Throw(class stdext::exception const &)"
(?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
1>libcef_dll_wrapper.lib(frame_ctocpp.obj) : error LNK2001: unresolved
external symbol "void __cdecl std::_Throw(class stdext::exception const &)"
(?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
1>libcef_dll_wrapper.lib(stream_writer_ctocpp.obj) : error LNK2001:
unresolved external symbol "void __cdecl std::_Throw(class
stdext::exception const &)" (?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
1>libcef_dll_wrapper.lib(write_handler_cpptoc.obj) : error LNK2001:
unresolved external symbol "void __cdecl std::_Throw(class
stdext::exception const &)" (?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
1>libcef_dll_wrapper.lib(scheme_handler_factory_cpptoc.obj) : error
LNK2001: unresolved external symbol "void __cdecl std::_Throw(class
stdext::exception const &)" (?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
1>libcef_dll_wrapper.lib(scheme_handler_cpptoc.obj) : error LNK2019:
unresolved external symbol "void __cdecl std::_Throw(class
stdext::exception const &)" (?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
referenced in function "int __stdcall scheme_handler_process_request(struct
_cef_scheme_handler_t *,struct _cef_request_t *,wchar_t * *,int *)" (?
scheme_handler_process_request@ @ YGHPAU_cef_scheme_handler_t@ @ PAU_cef_reques
t_t@ @ PAPA_WPAH@ Z)
1>libcef_dll_wrapper.lib(request_ctocpp.obj) : error LNK2001: unresolved
external symbol "void __cdecl std::_Throw(class stdext::exception const &)"
(?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
1>libcef_dll_wrapper.lib(browser_ctocpp.obj) : error LNK2001: unresolved
external symbol "void __cdecl std::_Throw(class stdext::exception const &)"
(?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
1>libcef_dll_wrapper.lib(stream_reader_ctocpp.obj) : error LNK2001:
unresolved external symbol "void __cdecl std::_Throw(class
stdext::exception const &)" (?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
1>libcef_dll_wrapper.lib(v8handler_cpptoc.obj) : error LNK2001: unresolved
external symbol "void __cdecl std::_Throw(class stdext::exception const &)"
(?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
1>libcef_dll_wrapper.lib(v8value_ctocpp.obj) : error LNK2001: unresolved
external symbol "void __cdecl std::_Throw(class stdext::exception const &)"
(?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
1>libcef_dll_wrapper.lib(libcef_dll_wrapper.obj) : error LNK2001:
unresolved external symbol "void __cdecl std::_Throw(class
stdext::exception const &)" (?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
1>libcef_dll_wrapper.lib(post_data_ctocpp.obj) : error LNK2001: unresolved
external symbol "void __cdecl std::_Throw(class stdext::exception const &)"
(?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
1>libcef_dll_wrapper.lib(post_data_element_ctocpp.obj) : error LNK2001:
unresolved external symbol "void __cdecl std::_Throw(class
stdext::exception const &)" (?_Throw@ std@ @ YAXABVexception@ stdext@ @ @ Z)
1>libcef_dll_wrapper.lib(read_handler_cpptoc.obj) : error LNK2001:
unresolved external symbol "void (__cdecl* std::_Raise_handler)(class
stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA)
1>libcef_dll_wrapper.lib(handler_cpptoc.obj) : error LNK2001: unresolved
external symbol "void (__cdecl* std::_Raise_handler)(class
stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA)
1>libcef_dll_wrapper.lib(transfer_util.obj) : error LNK2001: unresolved
external symbol "void (__cdecl* std::_Raise_handler)(class
stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA)
1>libcef_dll_wrapper.lib(frame_ctocpp.obj) : error LNK2001: unresolved
external symbol "void (__cdecl* std::_Raise_handler)(class
stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA)
1>libcef_dll_wrapper.lib(stream_writer_ctocpp.obj) : error LNK2001:
unresolved external symbol "void (__cdecl* std::_Raise_handler)(class
stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA)
1>libcef_dll_wrapper.lib(write_handler_cpptoc.obj) : error LNK2001:
unresolved external symbol "void (__cdecl* std::_Raise_handler)(class
stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA)
1>libcef_dll_wrapper.lib(scheme_handler_factory_cpptoc.obj) : error
LNK2001: unresolved external symbol "void (__cdecl*
std::_Raise_handler)(class stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA)
1>libcef_dll_wrapper.lib(scheme_handler_cpptoc.obj) : error LNK2001:
unresolved external symbol "void (__cdecl* std::_Raise_handler)(class
stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA)
1>libcef_dll_wrapper.lib(request_ctocpp.obj) : error LNK2019: unresolved
external symbol "void (__cdecl* std::_Raise_handler)(class
stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA) referenced in function
"public: virtual __thiscall CefThreadSafeBase::~CefThreadSafeBase(void)" (??1?
$CefThreadSafeBase@ VCefRequest@ @ @ @ UAE@ XZ)
1>libcef_dll_wrapper.lib(browser_ctocpp.obj) : error LNK2001: unresolved
external symbol "void (__cdecl* std::_Raise_handler)(class
stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA)
1>libcef_dll_wrapper.lib(stream_reader_ctocpp.obj) : error LNK2001:
unresolved external symbol "void (__cdecl* std::_Raise_handler)(class
stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA)
1>libcef_dll_wrapper.lib(v8handler_cpptoc.obj) : error LNK2001: unresolved
external symbol "void (__cdecl* std::_Raise_handler)(class
stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA)
1>libcef_dll_wrapper.lib(v8value_ctocpp.obj) : error LNK2001: unresolved
external symbol "void (__cdecl* std::_Raise_handler)(class
stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA)
1>libcef_dll_wrapper.lib(libcef_dll_wrapper.obj) : error LNK2001:
unresolved external symbol "void (__cdecl* std::_Raise_handler)(class
stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA)
1>libcef_dll_wrapper.lib(post_data_ctocpp.obj) : error LNK2001: unresolved
external symbol "void (__cdecl* std::_Raise_handler)(class
stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA)
1>libcef_dll_wrapper.lib(post_data_element_ctocpp.obj) : error LNK2001:
unresolved external symbol "void (__cdecl* std::_Raise_handler)(class
stdext::exception const &)" (?
_Raise_handler@ std@ @ 3P6AXABVexception@ stdext@ @ @ ZA)

Is that I miss some library files?

add support for custom URL scheme handlers

Original report by me.


Original issue 49 created by magreenblatt on 2009-08-05T07:18:49.000Z:

From the CEF forum: http://www.magpcss.org/ceforum/viewtopic.php?f=6&t=29

[begin paste]

Post by heshiming » Fri Jul 31, 2009 3:11 am
Hi,

I'm hoping to use CEF for my project. One of the requirement is custom URL
scheme handling. I consulted the source code of "chromium testshell". It
looked pretty straightforward. I could just do these:

URLRequestFilter* filter = URLRequestFilter::GetInstance();
filter->AddHostnameHandler("myscheme", "myserver",
&MyCustomURLRequestJob::Factory);
url_util::AddStandardScheme("myscheme");

With an implementation based on URLRequestJob, I have been able to use
"myscheme://myserver/" to serve my custom content (based on testshell of
course).

[end paste]

Store non-standard HTTP headers in history

Original report by me.


Original issue 42 created by magreenblatt on 2009-07-06T16:53:11.000Z:

Non-standard HTTP headers, usually prefixed with 'X-', are used by a number
of server-based applications. It is currently possible to create a
CefRequest that contains non-standard HTTP headers and load that request
via a call to CefFrame::LoadRequest(). If the request is then re-loaded via
a call to CefBrowser::Reload() the non-standard HTTP headers are remembered
and re-submitted. However, if the request is loaded by navigating the history
then the non-standard HTTP headers will have been lost and will not be
re-submitted.

This feature requires an enhancement to the underlying WebKit layer. The
WebKit bug report has been filed here:

https://bugs.webkit.org/show\_bug.cgi?id=26994

How to build with Visual Studio 2008?

Original report by Anonymous.


Original issue 26 created by leahayes on 2009-06-02T13:53:06.000Z:

Hi,

I have just found this project and am trying to compile it using Visual
Studio 2008. I keep getting a link error where "libcef_dll_wrapper.lib" was
built using an older version.

I do not have access to Visual Studio 2005 any more, and it appears that
Microsoft no longer offer an express edition download of Visual C++ 2005.

What is the solution to this problem?

Many thanks,

Lea Hayes

CEF C-Interface ISO C vs ISO C++

Original report by Anonymous.


Original issue 38 created by tux316 on 2009-06-24T18:05:38.000Z:

The following declaration works in ISO C++, but it is invalid in ISO C:

enum cef_retval_t (CEF_CALLBACK *handle_before_browse)(
struct _cef_handler_t* self, struct _cef_browser_t* browser,
struct _cef_frame_t* frame, struct _cef_request_t* request,
cef_handler_navtype_t navType, int isRedirect);

This is because "cef_handler_navtype_t" is an enumerator, and when "Compile
as C Code (/TC)" is in effect, it will not compile. There are 4 similar
cases of this, all throughout cef_capi.h.

The correct way:
enum cef_retval_t (CEF_CALLBACK *handle_before_browse)(
struct _cef_handler_t* self, struct _cef_browser_t* browser,
struct _cef_frame_t* frame, struct _cef_request_t* request,
enum cef_handler_navtype_t navType, int isRedirect);

I have attached a patch that fixes all 4 declarations in cef_capi.h. There
is no need to fix these anywhere else from my perspective, since the
projects in the CEF Solution are all compiled as C++ code.

Consider using GYP to generate CEF project files

Original report by me.


Original issue 48 created by magreenblatt on 2009-07-22T13:19:53.000Z:

Explore if using GYP would be a good option for generating CEF project
files. GYP could be a good option for creating VS2005 and VS2008 project
files as desired even if we don't currently support other platforms.

Keeping up with Chromium HEAD

Original report by me.


Original issue 47 created by magreenblatt on 2009-07-22T12:30:13.000Z:

Nicolas Sylvain over at Google has kindly set up a Windows build bot for
CEF as part of the Chromium FYI Waterfall:

http://build.chromium.org/buildbot/waterfall.fyi/waterfall?branch=&builder=Chromium+Embedded

The build bot synchronizes to each Chromium revision and then builds CEF,
reporting on any compile errors that occur. The intent of this build bot is
to help the Chromium developers avoid accidentally breaking API features
required by CEF, and to notify the CEF developers when such breakage has
occurred. In order for the build bot to satisfy this purpose we need to do
a better job of keeping CEF building against the Chromium HEAD revision.

One of the main problems with keeping CEF building against Chromium HEAD is
the delay between submitting patches to Chromium/WebKit and having those
patches accepted. A CEF developer will hopefully earn Chromium commit
access at some point, which should help mitigate this problem. However,
there may still be instances where CEF requires changes to the
Chromium/WebKit code base that are not desired by the Chromium/WebKit
project as a whole. To address this situation in the near term and with a
minimum of maintenance headaches (i.e. without forking) I'm adding a patch
capability as part of the CEF build process. The patch capability will
work as follows:

  1. The CEF developer creates one or more patches containing all required
    changes to Chromium/WebKit.
  2. CEF adds a new "config_patch" project that applies the patches to the
    Chromium/WebKit source tree using a command like "patch -p0".
  3. CEF adds the "config_patch" project as a build dependency for the
    "webkit\config" project in cef.sln.

Specific users, in particular the build bot, will not be interested in
having their Chromium/WebKit source base patched by CEF. Those users can
create a "NOPATCH" text file in the CEF directory that, if found, will
cause the Chromium/WebKit source base not to be patched. Sections of the
CEF code base that otherwise require these patches will be disabled using a
preprocessor definition defined automatically if the "NOPATCH" text file
exists.

CEF Client crashes on Bing.com when viewing video.

Original report by Anonymous.


Original issue 52 created by ntpcorp on 2009-08-26T15:26:11.000Z:

What steps will reproduce the problem?

  1. Navigate to http://www.bing.com/videos
  2. Click on a video.

What is the expected output? What do you see instead?

In Chrome there does not seem to be an issue.
In CEF:
Unhandled exception at 0x079aed6c in cefclient.exe: 0xC0000005: Access
violation reading location 0x00000070.

What version of the product are you using? On what operating system?

CEF r40. Windows XP.

Please provide any additional information below.

Compiled with VS2005 Pro.

Need to build as Dll library.

Original report by Vadim Ridosh (Bitbucket: Vadim Ridosh).


Original issue 1 created by vridosh on 2009-01-10T16:33:14.000Z:

Linking with such huge static library lasts for ages. Linking with tiny
lib, provided by Dll should speed up client builds a lot.

Can't disable SVG and DATABASE and how to delete cache ?

Original report by Anonymous.


Original issue 39 created by nhudinhquocphuong on 2009-06-26T22:14:56.000Z:

  • I tried to edit the preprocesser ENABLE_SVG=0 and ENABLE_DATABASE=0 but
    get may error at V8 binding I don't know the structure of whole thing yet
    so don't know how to fix this, can you please show me the way to disable
    SVG and DATABASE.
  • Why memory size keep increase each time I reload a page ? I tried to load
    a simple html page no image or any thing on hdd and refresh it over and over
    and memory just keep increase.
  • How to clear cache ? I don't find anything useful in http_cache.h, I need
    this for a crawler that load many site but only one per site so cache was
    waste memory.

Pauses while executing JavaScript

Original report by Anonymous.


Original issue 71 created by sdubon73 on 2010-02-11T09:31:55.000Z:

What steps will reproduce the problem?

  1. Open http://dromaeo.com/?dom
  2. Click on Run button
  3. Observe how the Est. Time decreasing counter pauses

What is the expected output? What do you see instead?

If you check the same page with Chromium you can see a smooth
decrease of the estimated time as the test goes on.
Instead, using cefclient, (test in Debug AND Release) I can see
the counter pausing and the test itself pausing irregularly.

What version of the product are you using? On what operating system?

http://chromiumembedded.googlecode.com/svn/trunk revision 70
compiled with http://src.chromium.org/svn/trunk/src revision 37566
on a Window 7 - 64 bits

Tried this also using cefclient packaged release 66,60 and 42
with the same result (pauses happening).

Not seeing such pauses with Chromium itself hence I am contacting you.

Thanks in advance for your help and support.

an ActiveX version

Original report by Anonymous.


Original issue 74 created by stijnsanders on 2010-02-24T06:26:24.000Z:

Is it possible to create an ActiveX wrapper around this lib?

Preferably with a specific type library and interfaces. Optionally in the
form of an OCX library.

I personally find it not at all required to implement the IWebBrowser
interface(s), (though if it would it'll get really close to GoogleFrame, I
guess)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.