mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Update to Chromium version 105.0.5176.0 (#1023155)
This commit is contained in:
@@ -71,8 +71,6 @@
|
||||
#include "content/public/common/content_paths.h"
|
||||
#include "content/public/common/content_switches.h"
|
||||
#include "content/public/common/url_constants.h"
|
||||
#include "content/public/renderer/render_view.h"
|
||||
#include "content/public/renderer/render_view_visitor.h"
|
||||
#include "extensions/common/manifest_handlers/csp_info.h"
|
||||
#include "extensions/common/switches.h"
|
||||
#include "extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container_manager.h"
|
||||
@@ -290,7 +288,7 @@ void AlloyContentRendererClient::RenderFrameCreated(
|
||||
render_manager_->RenderFrameCreated(render_frame, render_frame_observer,
|
||||
browser_created, is_windowless);
|
||||
if (browser_created) {
|
||||
OnBrowserCreated(render_frame->GetRenderView(), is_windowless);
|
||||
OnBrowserCreated(render_frame->GetWebView(), is_windowless);
|
||||
}
|
||||
|
||||
if (is_windowless.has_value()) {
|
||||
@@ -306,9 +304,7 @@ void AlloyContentRendererClient::WebViewCreated(blink::WebView* web_view) {
|
||||
absl::optional<bool> is_windowless;
|
||||
render_manager_->WebViewCreated(web_view, browser_created, is_windowless);
|
||||
if (browser_created) {
|
||||
auto render_view = content::RenderView::FromWebView(web_view);
|
||||
CHECK(render_view);
|
||||
OnBrowserCreated(render_view, is_windowless);
|
||||
OnBrowserCreated(web_view, is_windowless);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -516,7 +512,7 @@ void AlloyContentRendererClient::WillDestroyCurrentMessageLoop() {
|
||||
}
|
||||
|
||||
void AlloyContentRendererClient::OnBrowserCreated(
|
||||
content::RenderView* render_view,
|
||||
blink::WebView* web_view,
|
||||
absl::optional<bool> is_windowless) {
|
||||
#if BUILDFLAG(IS_MAC)
|
||||
const bool windowless = is_windowless.has_value() && *is_windowless;
|
||||
@@ -525,7 +521,7 @@ void AlloyContentRendererClient::OnBrowserCreated(
|
||||
// WebKit layer, or if it would be exposed as an WebView instance method; the
|
||||
// current implementation uses a static variable, and WebKit needs to be
|
||||
// patched in order to make it work for each WebView instance
|
||||
render_view->GetWebView()->SetUseExternalPopupMenusThisInstance(!windowless);
|
||||
web_view->SetUseExternalPopupMenusThisInstance(!windowless);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@@ -119,7 +119,7 @@ class AlloyContentRendererClient
|
||||
void WillDestroyCurrentMessageLoop() override;
|
||||
|
||||
private:
|
||||
void OnBrowserCreated(content::RenderView* render_view,
|
||||
void OnBrowserCreated(blink::WebView* web_view,
|
||||
absl::optional<bool> is_windowless);
|
||||
|
||||
// Perform cleanup work for single-process mode.
|
||||
|
@@ -17,7 +17,6 @@
|
||||
#include "base/strings/string_util.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "content/public/renderer/render_frame.h"
|
||||
#include "content/public/renderer/render_view.h"
|
||||
#include "content/renderer/document_state.h"
|
||||
#include "content/renderer/navigation_state.h"
|
||||
#include "third_party/blink/public/platform/web_string.h"
|
||||
@@ -35,7 +34,7 @@
|
||||
|
||||
// static
|
||||
CefRefPtr<CefBrowserImpl> CefBrowserImpl::GetBrowserForView(
|
||||
content::RenderView* view) {
|
||||
blink::WebView* view) {
|
||||
return CefRenderManager::Get()->GetBrowserForView(view);
|
||||
}
|
||||
|
||||
@@ -266,11 +265,11 @@ void CefBrowserImpl::GetFrameNames(std::vector<CefString>& names) {
|
||||
// CefBrowserImpl public methods.
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
CefBrowserImpl::CefBrowserImpl(content::RenderView* render_view,
|
||||
CefBrowserImpl::CefBrowserImpl(blink::WebView* web_view,
|
||||
int browser_id,
|
||||
bool is_popup,
|
||||
bool is_windowless)
|
||||
: blink::WebViewObserver(render_view->GetWebView()),
|
||||
: blink::WebViewObserver(web_view),
|
||||
browser_id_(browser_id),
|
||||
is_popup_(is_popup),
|
||||
is_windowless_(is_windowless) {}
|
||||
|
@@ -24,12 +24,9 @@
|
||||
namespace blink {
|
||||
class WebFrame;
|
||||
class WebNode;
|
||||
class WebView;
|
||||
} // namespace blink
|
||||
|
||||
namespace content {
|
||||
class RenderView;
|
||||
}
|
||||
|
||||
// Renderer plumbing for CEF features. There is a one-to-one relationship
|
||||
// between RenderView on the renderer side and RenderViewHost on the browser
|
||||
// side.
|
||||
@@ -38,7 +35,7 @@ class RenderView;
|
||||
class CefBrowserImpl : public CefBrowser, public blink::WebViewObserver {
|
||||
public:
|
||||
// Returns the browser associated with the specified RenderView.
|
||||
static CefRefPtr<CefBrowserImpl> GetBrowserForView(content::RenderView* view);
|
||||
static CefRefPtr<CefBrowserImpl> GetBrowserForView(blink::WebView* view);
|
||||
// Returns the browser associated with the specified main WebFrame.
|
||||
static CefRefPtr<CefBrowserImpl> GetBrowserForMainFrame(
|
||||
blink::WebFrame* frame);
|
||||
@@ -66,7 +63,7 @@ class CefBrowserImpl : public CefBrowser, public blink::WebViewObserver {
|
||||
void GetFrameIdentifiers(std::vector<int64>& identifiers) override;
|
||||
void GetFrameNames(std::vector<CefString>& names) override;
|
||||
|
||||
CefBrowserImpl(content::RenderView* render_view,
|
||||
CefBrowserImpl(blink::WebView* web_view,
|
||||
int browser_id,
|
||||
bool is_popup,
|
||||
bool is_windowless);
|
||||
|
@@ -33,7 +33,6 @@
|
||||
#include "libcef/renderer/v8_impl.h"
|
||||
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "content/public/renderer/render_view.h"
|
||||
#include "content/renderer/render_frame_impl.h"
|
||||
#include "third_party/blink/public/mojom/frame/frame.mojom-blink.h"
|
||||
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink.h"
|
||||
|
@@ -24,7 +24,6 @@
|
||||
#include "libcef/renderer/v8_impl.h"
|
||||
|
||||
#include "content/public/renderer/render_frame.h"
|
||||
#include "content/public/renderer/render_view.h"
|
||||
#include "third_party/blink/public/web/blink.h"
|
||||
#include "third_party/blink/public/web/web_document.h"
|
||||
#include "third_party/blink/public/web/web_element.h"
|
||||
|
@@ -10,7 +10,6 @@
|
||||
|
||||
#include "base/logging.h"
|
||||
#include "content/public/renderer/render_thread.h"
|
||||
#include "content/public/renderer/render_view.h"
|
||||
#include "content/renderer/render_frame_impl.h"
|
||||
#include "third_party/blink/public/web/web_local_frame.h"
|
||||
|
||||
|
@@ -35,7 +35,6 @@
|
||||
#include "content/public/common/content_switches.h"
|
||||
#include "content/public/renderer/render_frame.h"
|
||||
#include "content/public/renderer/render_thread.h"
|
||||
#include "content/public/renderer/render_view.h"
|
||||
#include "extensions/common/switches.h"
|
||||
#include "mojo/public/cpp/bindings/binder_map.h"
|
||||
#include "services/network/public/mojom/cors_origin_pattern.mojom.h"
|
||||
@@ -56,9 +55,9 @@ CefRenderManager* g_manager = nullptr;
|
||||
class CefGuestView : public blink::WebViewObserver {
|
||||
public:
|
||||
CefGuestView(CefRenderManager* manager,
|
||||
content::RenderView* render_view,
|
||||
blink::WebView* web_view,
|
||||
bool is_windowless)
|
||||
: blink::WebViewObserver(render_view->GetWebView()),
|
||||
: blink::WebViewObserver(web_view),
|
||||
manager_(manager),
|
||||
is_windowless_(is_windowless) {}
|
||||
|
||||
@@ -106,7 +105,7 @@ void CefRenderManager::RenderFrameCreated(
|
||||
CefRenderFrameObserver* render_frame_observer,
|
||||
bool& browser_created,
|
||||
absl::optional<bool>& is_windowless) {
|
||||
auto browser = MaybeCreateBrowser(render_frame->GetRenderView(), render_frame,
|
||||
auto browser = MaybeCreateBrowser(render_frame->GetWebView(), render_frame,
|
||||
&browser_created, &is_windowless);
|
||||
if (browser) {
|
||||
// Attach the frame to the observer for message routing purposes.
|
||||
@@ -118,16 +117,13 @@ void CefRenderManager::RenderFrameCreated(
|
||||
void CefRenderManager::WebViewCreated(blink::WebView* web_view,
|
||||
bool& browser_created,
|
||||
absl::optional<bool>& is_windowless) {
|
||||
auto render_view = content::RenderView::FromWebView(web_view);
|
||||
CHECK(render_view);
|
||||
content::RenderFrame* render_frame = nullptr;
|
||||
if (web_view->MainFrame()->IsWebLocalFrame()) {
|
||||
render_frame = content::RenderFrame::FromWebFrame(
|
||||
web_view->MainFrame()->ToWebLocalFrame());
|
||||
}
|
||||
|
||||
MaybeCreateBrowser(render_view, render_frame, &browser_created,
|
||||
&is_windowless);
|
||||
MaybeCreateBrowser(web_view, render_frame, &browser_created, &is_windowless);
|
||||
}
|
||||
|
||||
void CefRenderManager::DevToolsAgentAttached() {
|
||||
@@ -157,7 +153,7 @@ void CefRenderManager::ExposeInterfacesToBrowser(mojo::BinderMap* binders) {
|
||||
}
|
||||
|
||||
CefRefPtr<CefBrowserImpl> CefRenderManager::GetBrowserForView(
|
||||
content::RenderView* view) {
|
||||
blink::WebView* view) {
|
||||
BrowserMap::const_iterator it = browsers_.find(view);
|
||||
if (it != browsers_.end())
|
||||
return it->second;
|
||||
@@ -282,19 +278,19 @@ void CefRenderManager::WebKitInitialized() {
|
||||
}
|
||||
|
||||
CefRefPtr<CefBrowserImpl> CefRenderManager::MaybeCreateBrowser(
|
||||
content::RenderView* render_view,
|
||||
blink::WebView* web_view,
|
||||
content::RenderFrame* render_frame,
|
||||
bool* browser_created,
|
||||
absl::optional<bool>* is_windowless) {
|
||||
if (browser_created)
|
||||
*browser_created = false;
|
||||
|
||||
if (!render_view || !render_frame)
|
||||
if (!web_view || !render_frame)
|
||||
return nullptr;
|
||||
|
||||
// Don't create another browser or guest view object if one already exists for
|
||||
// the view.
|
||||
auto browser = GetBrowserForView(render_view);
|
||||
auto browser = GetBrowserForView(web_view);
|
||||
if (browser) {
|
||||
if (is_windowless) {
|
||||
*is_windowless = browser->is_windowless();
|
||||
@@ -302,7 +298,7 @@ CefRefPtr<CefBrowserImpl> CefRenderManager::MaybeCreateBrowser(
|
||||
return browser;
|
||||
}
|
||||
|
||||
auto guest_view = GetGuestViewForView(render_view);
|
||||
auto guest_view = GetGuestViewForView(web_view);
|
||||
if (guest_view) {
|
||||
if (is_windowless) {
|
||||
*is_windowless = guest_view->is_windowless();
|
||||
@@ -331,14 +327,14 @@ CefRefPtr<CefBrowserImpl> CefRenderManager::MaybeCreateBrowser(
|
||||
// Don't create a CefBrowser for a PDF renderer, guest view, or if the new
|
||||
// browser info response has timed out.
|
||||
guest_views_.insert(std::make_pair(
|
||||
render_view, std::make_unique<CefGuestView>(this, render_view,
|
||||
params->is_windowless)));
|
||||
web_view,
|
||||
std::make_unique<CefGuestView>(this, web_view, params->is_windowless)));
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
browser = new CefBrowserImpl(render_view, params->browser_id,
|
||||
params->is_popup, params->is_windowless);
|
||||
browsers_.insert(std::make_pair(render_view, browser));
|
||||
browser = new CefBrowserImpl(web_view, params->browser_id, params->is_popup,
|
||||
params->is_windowless);
|
||||
browsers_.insert(std::make_pair(web_view, browser));
|
||||
|
||||
// Notify the render process handler.
|
||||
CefRefPtr<CefApp> application = CefAppManager::Get()->GetApplication();
|
||||
@@ -378,7 +374,7 @@ void CefRenderManager::OnBrowserDestroyed(CefBrowserImpl* browser) {
|
||||
NOTREACHED();
|
||||
}
|
||||
|
||||
CefGuestView* CefRenderManager::GetGuestViewForView(content::RenderView* view) {
|
||||
CefGuestView* CefRenderManager::GetGuestViewForView(blink::WebView* view) {
|
||||
CEF_REQUIRE_RT_RETURN(nullptr);
|
||||
|
||||
GuestViewMap::const_iterator it = guest_views_.find(view);
|
||||
|
@@ -24,7 +24,6 @@ class WebView;
|
||||
|
||||
namespace content {
|
||||
class RenderFrame;
|
||||
class RenderView;
|
||||
} // namespace content
|
||||
|
||||
namespace mojo {
|
||||
@@ -63,7 +62,7 @@ class CefRenderManager : public cef::mojom::RenderManager {
|
||||
void ExposeInterfacesToBrowser(mojo::BinderMap* binders);
|
||||
|
||||
// Returns the browser associated with the specified RenderView.
|
||||
CefRefPtr<CefBrowserImpl> GetBrowserForView(content::RenderView* view);
|
||||
CefRefPtr<CefBrowserImpl> GetBrowserForView(blink::WebView* view);
|
||||
|
||||
// Returns the browser associated with the specified main WebFrame.
|
||||
CefRefPtr<CefBrowserImpl> GetBrowserForMainFrame(blink::WebFrame* frame);
|
||||
@@ -95,7 +94,7 @@ class CefRenderManager : public cef::mojom::RenderManager {
|
||||
// Maybe create a new browser object, return the existing one, or return
|
||||
// nullptr for guest views.
|
||||
CefRefPtr<CefBrowserImpl> MaybeCreateBrowser(
|
||||
content::RenderView* render_view,
|
||||
blink::WebView* web_view,
|
||||
content::RenderFrame* render_frame,
|
||||
bool* browser_created,
|
||||
absl::optional<bool>* is_windowless);
|
||||
@@ -104,18 +103,17 @@ class CefRenderManager : public cef::mojom::RenderManager {
|
||||
void OnBrowserDestroyed(CefBrowserImpl* browser);
|
||||
|
||||
// Returns the guest view associated with the specified RenderView if any.
|
||||
CefGuestView* GetGuestViewForView(content::RenderView* view);
|
||||
CefGuestView* GetGuestViewForView(blink::WebView* view);
|
||||
|
||||
// Called from CefGuestView::OnDestruct().
|
||||
void OnGuestViewDestroyed(CefGuestView* guest_view);
|
||||
|
||||
// Map of RenderView pointers to CefBrowserImpl references.
|
||||
using BrowserMap = std::map<content::RenderView*, CefRefPtr<CefBrowserImpl>>;
|
||||
using BrowserMap = std::map<blink::WebView*, CefRefPtr<CefBrowserImpl>>;
|
||||
BrowserMap browsers_;
|
||||
|
||||
// Map of RenderView poiners to CefGuestView implementations.
|
||||
using GuestViewMap =
|
||||
std::map<content::RenderView*, std::unique_ptr<CefGuestView>>;
|
||||
using GuestViewMap = std::map<blink::WebView*, std::unique_ptr<CefGuestView>>;
|
||||
GuestViewMap guest_views_;
|
||||
|
||||
// Cross-origin white list entries that need to be registered with WebKit.
|
||||
|
Reference in New Issue
Block a user