mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Add support for loading extensions (issue #1947)
- Add CefRequestContext::LoadExtension, CefExtension, CefExtensionHandler and related methods/interfaces. - Add chrome://extensions-support that lists supported Chrome APIs. - Add CefBrowserHost::SetAutoResizeEnabled and CefDisplayHandler::OnAutoResize to support browser resize based on preferred web contents size. - views: Add support for custom CefMenuButton popups. - cefclient: Run with `--load-extension=set_page_color` command-line flag for an extension loading example. Add `--use-views` on Windows and Linux for an even better example.
This commit is contained in:
@ -9,10 +9,36 @@
|
||||
|
||||
namespace client {
|
||||
|
||||
RootWindowConfig::RootWindowConfig()
|
||||
: with_controls(true),
|
||||
with_osr(false),
|
||||
with_extension(false),
|
||||
initially_hidden(false),
|
||||
url(MainContext::Get()->GetMainURL()) {}
|
||||
|
||||
RootWindow::RootWindow() : delegate_(NULL) {}
|
||||
|
||||
RootWindow::~RootWindow() {}
|
||||
|
||||
// static
|
||||
scoped_refptr<RootWindow> RootWindow::GetForBrowser(int browser_id) {
|
||||
return MainContext::Get()->GetRootWindowManager()->GetWindowForBrowser(
|
||||
browser_id);
|
||||
}
|
||||
|
||||
void RootWindow::OnExtensionsChanged(const ExtensionSet& extensions) {
|
||||
REQUIRE_MAIN_THREAD();
|
||||
DCHECK(delegate_);
|
||||
DCHECK(!WithExtension());
|
||||
|
||||
if (extensions.empty())
|
||||
return;
|
||||
|
||||
ExtensionSet::const_iterator it = extensions.begin();
|
||||
for (; it != extensions.end(); ++it) {
|
||||
delegate_->CreateExtensionWindow(*it, CefRect(), NULL, base::Closure(),
|
||||
WithWindowlessRendering());
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace client
|
||||
|
Reference in New Issue
Block a user