mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Update to Chromium revision 3a87aecc (#433059)
This commit is contained in:
@@ -68,7 +68,7 @@ CefRefPtr<CefBrowserImpl> CefBrowserImpl::GetBrowserForMainFrame(
|
||||
|
||||
CefRefPtr<CefBrowserHost> CefBrowserImpl::GetHost() {
|
||||
NOTREACHED() << "GetHost cannot be called from the render process";
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool CefBrowserImpl::CanGoBack() {
|
||||
@@ -157,31 +157,31 @@ bool CefBrowserImpl::HasDocument() {
|
||||
}
|
||||
|
||||
CefRefPtr<CefFrame> CefBrowserImpl::GetMainFrame() {
|
||||
CEF_REQUIRE_RT_RETURN(NULL);
|
||||
CEF_REQUIRE_RT_RETURN(nullptr);
|
||||
|
||||
if (render_view()->GetWebView() && render_view()->GetWebView()->mainFrame())
|
||||
return GetWebFrameImpl(render_view()->GetWebView()->mainFrame()).get();
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
CefRefPtr<CefFrame> CefBrowserImpl::GetFocusedFrame() {
|
||||
CEF_REQUIRE_RT_RETURN(NULL);
|
||||
CEF_REQUIRE_RT_RETURN(nullptr);
|
||||
|
||||
if (render_view()->GetWebView() &&
|
||||
render_view()->GetWebView()->focusedFrame()) {
|
||||
return GetWebFrameImpl(render_view()->GetWebView()->focusedFrame()).get();
|
||||
}
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
CefRefPtr<CefFrame> CefBrowserImpl::GetFrame(int64 identifier) {
|
||||
CEF_REQUIRE_RT_RETURN(NULL);
|
||||
CEF_REQUIRE_RT_RETURN(nullptr);
|
||||
|
||||
return GetWebFrameImpl(identifier).get();
|
||||
}
|
||||
|
||||
CefRefPtr<CefFrame> CefBrowserImpl::GetFrame(const CefString& name) {
|
||||
CEF_REQUIRE_RT_RETURN(NULL);
|
||||
CEF_REQUIRE_RT_RETURN(nullptr);
|
||||
|
||||
blink::WebView* web_view = render_view()->GetWebView();
|
||||
if (web_view) {
|
||||
@@ -198,7 +198,7 @@ CefRefPtr<CefFrame> CefBrowserImpl::GetFrame(const CefString& name) {
|
||||
return GetWebFrameImpl(frame).get();
|
||||
}
|
||||
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
size_t CefBrowserImpl::GetFrameCount() {
|
||||
@@ -207,13 +207,9 @@ size_t CefBrowserImpl::GetFrameCount() {
|
||||
int count = 0;
|
||||
|
||||
if (render_view()->GetWebView()) {
|
||||
WebFrame* main_frame = render_view()->GetWebView()->mainFrame();
|
||||
if (main_frame) {
|
||||
WebFrame* cur = main_frame;
|
||||
do {
|
||||
count++;
|
||||
cur = cur->traverseNext(true);
|
||||
} while (cur != main_frame);
|
||||
for (WebFrame* frame = render_view()->GetWebView()->mainFrame(); frame;
|
||||
frame = frame->traverseNext()) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -227,13 +223,9 @@ void CefBrowserImpl::GetFrameIdentifiers(std::vector<int64>& identifiers) {
|
||||
identifiers.clear();
|
||||
|
||||
if (render_view()->GetWebView()) {
|
||||
WebFrame* main_frame = render_view()->GetWebView()->mainFrame();
|
||||
if (main_frame) {
|
||||
WebFrame* cur = main_frame;
|
||||
do {
|
||||
identifiers.push_back(webkit_glue::GetIdentifier(cur));
|
||||
cur = cur->traverseNext(true);
|
||||
} while (cur != main_frame);
|
||||
for (WebFrame* frame = render_view()->GetWebView()->mainFrame(); frame;
|
||||
frame = frame->traverseNext()) {
|
||||
identifiers.push_back(webkit_glue::GetIdentifier(frame));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -245,13 +237,9 @@ void CefBrowserImpl::GetFrameNames(std::vector<CefString>& names) {
|
||||
names.clear();
|
||||
|
||||
if (render_view()->GetWebView()) {
|
||||
WebFrame* main_frame = render_view()->GetWebView()->mainFrame();
|
||||
if (main_frame) {
|
||||
WebFrame* cur = main_frame;
|
||||
do {
|
||||
names.push_back(CefString(cur->uniqueName().utf8()));
|
||||
cur = cur->traverseNext(true);
|
||||
} while (cur != main_frame);
|
||||
for (WebFrame* frame = render_view()->GetWebView()->mainFrame(); frame;
|
||||
frame = frame->traverseNext()) {
|
||||
names.push_back(CefString(frame->uniqueName().utf8()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -347,7 +335,7 @@ CefRefPtr<CefFrameImpl> CefBrowserImpl::GetWebFrameImpl(int64_t frame_id) {
|
||||
if (frame_id == webkit_glue::kInvalidFrameId) {
|
||||
if (render_view()->GetWebView() && render_view()->GetWebView()->mainFrame())
|
||||
return GetWebFrameImpl(render_view()->GetWebView()->mainFrame());
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// Check if we already know about the frame.
|
||||
@@ -357,18 +345,14 @@ CefRefPtr<CefFrameImpl> CefBrowserImpl::GetWebFrameImpl(int64_t frame_id) {
|
||||
|
||||
if (render_view()->GetWebView()) {
|
||||
// Check if the frame exists but we don't know about it yet.
|
||||
WebFrame* main_frame = render_view()->GetWebView()->mainFrame();
|
||||
if (main_frame) {
|
||||
WebFrame* cur = main_frame;
|
||||
do {
|
||||
if (webkit_glue::GetIdentifier(cur) == frame_id)
|
||||
return GetWebFrameImpl(cur);
|
||||
cur = cur->traverseNext(true);
|
||||
} while (cur != main_frame);
|
||||
for (WebFrame* frame = render_view()->GetWebView()->mainFrame(); frame;
|
||||
frame = frame->traverseNext()) {
|
||||
if (webkit_glue::GetIdentifier(frame) == frame_id)
|
||||
return GetWebFrameImpl(frame);
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void CefBrowserImpl::AddFrameObject(int64_t frame_id,
|
||||
@@ -409,7 +393,7 @@ void CefBrowserImpl::OnDestruct() {
|
||||
handler->OnBrowserDestroyed(this);
|
||||
}
|
||||
|
||||
response_manager_.reset(NULL);
|
||||
response_manager_.reset();
|
||||
|
||||
CefContentRendererClient::Get()->OnBrowserDestroyed(this);
|
||||
}
|
||||
@@ -552,7 +536,7 @@ void CefBrowserImpl::OnRequest(const Cef_Request_Params& params) {
|
||||
false, true));
|
||||
success = handler->OnProcessMessageReceived(this, PID_BROWSER,
|
||||
message.get());
|
||||
message->Detach(NULL);
|
||||
message->Detach(nullptr);
|
||||
}
|
||||
}
|
||||
} else if (params.name == "execute-code") {
|
||||
|
@@ -106,6 +106,7 @@ class CefPrerenderingSupport : public blink::WebPrerenderingSupport {
|
||||
void add(const blink::WebPrerender& prerender) override {}
|
||||
void cancel(const blink::WebPrerender& prerender) override {}
|
||||
void abandon(const blink::WebPrerender& prerender) override {}
|
||||
void prefetchFinished() override {}
|
||||
};
|
||||
|
||||
// Stub implementation of blink::WebPrerendererClient.
|
||||
@@ -186,9 +187,8 @@ CefContentRendererClient::CefContentRendererClient()
|
||||
extensions::ExtensionsRendererClient::Set(
|
||||
extensions_renderer_client_.get());
|
||||
}
|
||||
#if defined(ENABLE_PRINTING)
|
||||
|
||||
printing::SetAgent(CefContentClient::Get()->GetUserAgent());
|
||||
#endif
|
||||
}
|
||||
|
||||
CefContentRendererClient::~CefContentRendererClient() {
|
||||
@@ -467,6 +467,9 @@ void CefContentRendererClient::RenderFrameCreated(
|
||||
content::RenderFrame* render_frame) {
|
||||
new CefRenderFrameObserver(render_frame);
|
||||
new CefPepperHelper(render_frame);
|
||||
new printing::PrintWebViewHelper(
|
||||
render_frame,
|
||||
base::WrapUnique(new extensions::CefPrintWebViewHelperDelegate()));
|
||||
|
||||
if (extensions::ExtensionsEnabled())
|
||||
extensions_renderer_client_->RenderFrameCreated(render_frame);
|
||||
@@ -477,9 +480,6 @@ void CefContentRendererClient::RenderFrameCreated(
|
||||
void CefContentRendererClient::RenderViewCreated(
|
||||
content::RenderView* render_view) {
|
||||
new CefPrerendererClient(render_view);
|
||||
new printing::PrintWebViewHelper(
|
||||
render_view,
|
||||
base::WrapUnique(new extensions::CefPrintWebViewHelperDelegate()));
|
||||
|
||||
if (extensions::ExtensionsEnabled())
|
||||
extensions_renderer_client_->RenderViewCreated(render_view);
|
||||
@@ -598,8 +598,7 @@ bool CefContentRendererClient::ShouldFork(blink::WebLocalFrame* frame,
|
||||
bool CefContentRendererClient::WillSendRequest(
|
||||
blink::WebFrame* frame,
|
||||
ui::PageTransition transition_type,
|
||||
const GURL& url,
|
||||
const GURL& first_party_for_cookies,
|
||||
const blink::WebURL& url,
|
||||
GURL* new_url) {
|
||||
if (extensions::ExtensionsEnabled()) {
|
||||
return extensions_renderer_client_->WillSendRequest(frame, transition_type,
|
||||
|
@@ -113,8 +113,7 @@ class CefContentRendererClient : public content::ContentRendererClient,
|
||||
bool* send_referrer) override;
|
||||
bool WillSendRequest(blink::WebFrame* frame,
|
||||
ui::PageTransition transition_type,
|
||||
const GURL& url,
|
||||
const GURL& first_party_for_cookies,
|
||||
const blink::WebURL& url,
|
||||
GURL* new_url) override;
|
||||
unsigned long long VisitedLinkHash(const char* canonical_url,
|
||||
size_t length) override;
|
||||
@@ -176,6 +175,8 @@ class CefContentRendererClient : public content::ContentRendererClient,
|
||||
// Access must be protected by |single_process_cleanup_lock_|.
|
||||
bool single_process_cleanup_complete_;
|
||||
base::Lock single_process_cleanup_lock_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(CefContentRendererClient);
|
||||
};
|
||||
|
||||
#endif // CEF_LIBCEF_RENDERER_CONTENT_RENDERER_CLIENT_H_
|
||||
|
@@ -78,7 +78,7 @@ bool CefDOMNodeImpl::IsEditable() {
|
||||
|
||||
if (node_.isElementNode()) {
|
||||
const WebElement& element = node_.toConst<WebElement>();
|
||||
if (element.isTextFormControlElement())
|
||||
if (webkit_glue::IsTextControlElement(element))
|
||||
return true;
|
||||
|
||||
// Also return true if it has an ARIA role of 'textbox'.
|
||||
|
@@ -170,18 +170,18 @@ bool CefExtensionsRendererClient::OverrideCreatePlugin(
|
||||
bool CefExtensionsRendererClient::WillSendRequest(
|
||||
blink::WebFrame* frame,
|
||||
ui::PageTransition transition_type,
|
||||
const GURL& url,
|
||||
const blink::WebURL& url,
|
||||
GURL* new_url) {
|
||||
// Check whether the request should be allowed. If not allowed, we reset the
|
||||
// URL to something invalid to prevent the request and cause an error.
|
||||
if (url.SchemeIs(extensions::kExtensionScheme) &&
|
||||
!resource_request_policy_->CanRequestResource(url, frame,
|
||||
if (url.protocolIs(extensions::kExtensionScheme) &&
|
||||
!resource_request_policy_->CanRequestResource(GURL(url), frame,
|
||||
transition_type)) {
|
||||
*new_url = GURL(chrome::kExtensionInvalidRequestURL);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (url.SchemeIs(extensions::kExtensionResourceScheme) &&
|
||||
if (url.protocolIs(extensions::kExtensionResourceScheme) &&
|
||||
!resource_request_policy_->CanRequestExtensionResourceScheme(url,
|
||||
frame)) {
|
||||
*new_url = GURL(chrome::kExtensionResourceInvalidRequestURL);
|
||||
@@ -239,7 +239,7 @@ bool CefExtensionsRendererClient::ShouldFork(blink::WebLocalFrame* frame,
|
||||
// for subframes, so this check only makes sense for top-level frames.
|
||||
// TODO(alexmos,nasko): Figure out how this check should work when reloading
|
||||
// subframes in --site-per-process mode.
|
||||
if (!frame->parent() && frame->document().url() == url) {
|
||||
if (!frame->parent() && GURL(frame->document().url()) == url) {
|
||||
if (is_extension_url != IsStandaloneExtensionProcess())
|
||||
return true;
|
||||
}
|
||||
|
@@ -18,6 +18,7 @@ namespace blink {
|
||||
class WebFrame;
|
||||
class WebLocalFrame;
|
||||
struct WebPluginParams;
|
||||
class WebURL;
|
||||
}
|
||||
|
||||
namespace content {
|
||||
@@ -50,7 +51,7 @@ class CefExtensionsRendererClient : public ExtensionsRendererClient {
|
||||
const blink::WebPluginParams& params);
|
||||
bool WillSendRequest(blink::WebFrame* frame,
|
||||
ui::PageTransition transition_type,
|
||||
const GURL& url,
|
||||
const blink::WebURL& url,
|
||||
GURL* new_url);
|
||||
void RunScriptsAtDocumentStart(content::RenderFrame* render_frame);
|
||||
void RunScriptsAtDocumentEnd(content::RenderFrame* render_frame);
|
||||
|
@@ -22,7 +22,7 @@ CefPrintWebViewHelperDelegate::~CefPrintWebViewHelperDelegate(){
|
||||
}
|
||||
|
||||
bool CefPrintWebViewHelperDelegate::CancelPrerender(
|
||||
content::RenderView* render_view, int routing_id) {
|
||||
content::RenderFrame* render_frame) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@@ -14,8 +14,7 @@ class CefPrintWebViewHelperDelegate
|
||||
public:
|
||||
~CefPrintWebViewHelperDelegate() override;
|
||||
|
||||
bool CancelPrerender(content::RenderView* render_view,
|
||||
int routing_id) override;
|
||||
bool CancelPrerender(content::RenderFrame* render_frame) override;
|
||||
blink::WebElement GetPdfElement(blink::WebLocalFrame* frame) override;
|
||||
bool IsPrintPreviewEnabled() override;
|
||||
bool OverridePrint(blink::WebLocalFrame* frame) override;
|
||||
|
@@ -16,6 +16,7 @@
|
||||
#include "libcef/common/cef_messages.h"
|
||||
#include "media/base/eme_constants.h"
|
||||
#include "media/base/key_system_properties.h"
|
||||
#include "ppapi/features/features.h"
|
||||
|
||||
#include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR.
|
||||
|
||||
@@ -31,7 +32,7 @@ using media::SupportedCodecs;
|
||||
|
||||
namespace {
|
||||
|
||||
#if defined(ENABLE_PEPPER_CDMS)
|
||||
#if BUILDFLAG(ENABLE_PEPPER_CDMS)
|
||||
bool IsPepperCdmAvailable(
|
||||
const std::string& pepper_type,
|
||||
std::vector<base::string16>* additional_param_names,
|
||||
@@ -135,15 +136,15 @@ void AddPepperBasedWidevine(
|
||||
media::EmeFeatureSupport::NOT_SUPPORTED)); // Distinctive identifier.
|
||||
}
|
||||
#endif // defined(WIDEVINE_CDM_AVAILABLE)
|
||||
#endif // defined(ENABLE_PEPPER_CDMS)
|
||||
#endif // BUILDFLAG(ENABLE_PEPPER_CDMS)
|
||||
|
||||
} // namespace
|
||||
|
||||
void AddCefKeySystems(
|
||||
std::vector<std::unique_ptr<KeySystemProperties>>* key_systems_properties) {
|
||||
#if defined(ENABLE_PEPPER_CDMS)
|
||||
#if BUILDFLAG(ENABLE_PEPPER_CDMS)
|
||||
#if defined(WIDEVINE_CDM_AVAILABLE)
|
||||
AddPepperBasedWidevine(key_systems_properties);
|
||||
#endif // defined(WIDEVINE_CDM_AVAILABLE)
|
||||
#endif // defined(ENABLE_PEPPER_CDMS)
|
||||
#endif // BUILDFLAG(ENABLE_PEPPER_CDMS)
|
||||
}
|
||||
|
@@ -24,8 +24,8 @@
|
||||
#include "content/public/renderer/render_thread.h"
|
||||
#include "gin/object_template_builder.h"
|
||||
#include "third_party/WebKit/public/platform/URLConversion.h"
|
||||
#include "third_party/WebKit/public/platform/WebInputEvent.h"
|
||||
#include "third_party/WebKit/public/web/WebDocument.h"
|
||||
#include "third_party/WebKit/public/web/WebInputEvent.h"
|
||||
#include "third_party/WebKit/public/web/WebLocalFrame.h"
|
||||
#include "third_party/WebKit/public/web/WebScriptSource.h"
|
||||
#include "third_party/WebKit/public/web/WebView.h"
|
||||
|
@@ -11,7 +11,7 @@
|
||||
#include "components/visitedlink/renderer/visitedlink_slave.h"
|
||||
#include "content/public/renderer/render_thread.h"
|
||||
#include "net/base/net_module.h"
|
||||
#include "services/shell/public/cpp/interface_registry.h"
|
||||
#include "services/service_manager/public/cpp/interface_registry.h"
|
||||
#include "third_party/WebKit/public/platform/WebString.h"
|
||||
#include "third_party/WebKit/public/platform/WebURL.h"
|
||||
#include "third_party/WebKit/public/web/WebSecurityPolicy.h"
|
||||
|
@@ -186,6 +186,11 @@ v8::MaybeLocal<v8::Value> CallV8Function(v8::Local<v8::Context> context,
|
||||
return func_rv;
|
||||
}
|
||||
|
||||
bool IsTextControlElement(const blink::WebElement& element) {
|
||||
const blink::Element* web_element = element.constUnwrap<blink::Element>();
|
||||
return web_element->isTextControl();
|
||||
}
|
||||
|
||||
v8::MaybeLocal<v8::Value> ExecuteV8ScriptAndReturnValue(
|
||||
const blink::WebString& source,
|
||||
const blink::WebString& source_url,
|
||||
|
@@ -15,6 +15,7 @@
|
||||
#include "v8/include/v8.h"
|
||||
|
||||
namespace blink {
|
||||
class WebElement;
|
||||
class WebFrame;
|
||||
class WebNode;
|
||||
class WebString;
|
||||
@@ -46,6 +47,8 @@ int64_t GetIdentifier(blink::WebFrame* frame);
|
||||
blink::WebFrame* FindFrameByUniqueName(const blink::WebString& unique_name,
|
||||
blink::WebFrame* relative_to_frame);
|
||||
|
||||
bool IsTextControlElement(const blink::WebElement& element);
|
||||
|
||||
v8::MaybeLocal<v8::Value> CallV8Function(v8::Local<v8::Context> context,
|
||||
v8::Local<v8::Function> function,
|
||||
v8::Local<v8::Object> receiver,
|
||||
|
Reference in New Issue
Block a user