diff options
Diffstat (limited to 'chromium/weblayer/renderer')
6 files changed, 43 insertions, 13 deletions
diff --git a/chromium/weblayer/renderer/DEPS b/chromium/weblayer/renderer/DEPS index 2c8bba7e64b..0256937da2e 100644 --- a/chromium/weblayer/renderer/DEPS +++ b/chromium/weblayer/renderer/DEPS @@ -4,6 +4,7 @@ include_rules = [ "+components/cdm/renderer", "+components/content_settings/renderer", "+components/error_page/common", + "+components/grit", "+components/page_load_metrics/renderer", "+components/safe_browsing/content/common", "+components/safe_browsing/content/renderer", diff --git a/chromium/weblayer/renderer/content_renderer_client_impl.cc b/chromium/weblayer/renderer/content_renderer_client_impl.cc index 0b4e7fbdb14..490e7e45d5f 100644 --- a/chromium/weblayer/renderer/content_renderer_client_impl.cc +++ b/chromium/weblayer/renderer/content_renderer_client_impl.cc @@ -10,9 +10,12 @@ #include "components/autofill/content/renderer/password_autofill_agent.h" #include "components/content_settings/renderer/content_settings_agent_impl.h" #include "components/error_page/common/error.h" +#include "components/grit/components_scaled_resources.h" +#include "components/js_injection/renderer/js_communication.h" #include "components/page_load_metrics/renderer/metrics_render_frame_observer.h" #include "content/public/renderer/render_thread.h" #include "third_party/blink/public/platform/platform.h" +#include "ui/base/resource/resource_bundle.h" #include "weblayer/common/features.h" #include "weblayer/renderer/error_page_helper.h" #include "weblayer/renderer/weblayer_render_frame_observer.h" @@ -25,6 +28,7 @@ #include "components/spellcheck/renderer/spellcheck_provider.h" // nogncheck #include "content/public/renderer/render_thread.h" #include "services/service_manager/public/cpp/local_interface_provider.h" +#include "third_party/blink/public/platform/web_runtime_features.h" #include "weblayer/renderer/url_loader_throttle_provider.h" #endif @@ -101,6 +105,19 @@ void ContentRendererClientImpl::RenderFrameCreated( new SpellCheckProvider(render_frame, spellcheck_.get(), local_interface_provider_.get()); #endif + new js_injection::JsCommunication(render_frame); +} + +SkBitmap* ContentRendererClientImpl::GetSadPluginBitmap() { + return const_cast<SkBitmap*>(ui::ResourceBundle::GetSharedInstance() + .GetImageNamed(IDR_SAD_PLUGIN) + .ToSkBitmap()); +} + +SkBitmap* ContentRendererClientImpl::GetSadWebViewBitmap() { + return const_cast<SkBitmap*>(ui::ResourceBundle::GetSharedInstance() + .GetImageNamed(IDR_SAD_WEBVIEW) + .ToSkBitmap()); } bool ContentRendererClientImpl::HasErrorPage(int http_status_code) { @@ -160,4 +177,14 @@ void ContentRendererClientImpl::AddSupportedKeySystems( #endif } +void ContentRendererClientImpl:: + SetRuntimeFeaturesDefaultsBeforeBlinkInitialization() { +#if defined(OS_ANDROID) + // Web Share is experimental by default, and explicitly enabled on Android + // (for both Chrome and WebLayer). + blink::WebRuntimeFeatures::EnableWebShare(true); + blink::WebRuntimeFeatures::EnableWebShareV2(true); +#endif +} + } // namespace weblayer diff --git a/chromium/weblayer/renderer/content_renderer_client_impl.h b/chromium/weblayer/renderer/content_renderer_client_impl.h index 1d7d387aa57..b149a0f3e35 100644 --- a/chromium/weblayer/renderer/content_renderer_client_impl.h +++ b/chromium/weblayer/renderer/content_renderer_client_impl.h @@ -27,6 +27,8 @@ class ContentRendererClientImpl : public content::ContentRendererClient { // content::ContentRendererClient: void RenderThreadStarted() override; void RenderFrameCreated(content::RenderFrame* render_frame) override; + SkBitmap* GetSadPluginBitmap() override; + SkBitmap* GetSadWebViewBitmap() override; bool HasErrorPage(int http_status_code) override; bool ShouldSuppressErrorPage(content::RenderFrame* render_frame, const GURL& url, @@ -41,6 +43,7 @@ class ContentRendererClientImpl : public content::ContentRendererClient { void AddSupportedKeySystems( std::vector<std::unique_ptr<::media::KeySystemProperties>>* key_systems) override; + void SetRuntimeFeaturesDefaultsBeforeBlinkInitialization() override; private: #if defined(OS_ANDROID) diff --git a/chromium/weblayer/renderer/error_page_helper.cc b/chromium/weblayer/renderer/error_page_helper.cc index fa76ba35d1c..39a2ffb300b 100644 --- a/chromium/weblayer/renderer/error_page_helper.cc +++ b/chromium/weblayer/renderer/error_page_helper.cc @@ -44,9 +44,8 @@ bool IsReloadableError(const error_page::Error& error, bool was_failed_post) { error.reason() != net::ERR_SSL_PROTOCOL_ERROR && // Do not trigger for blacklisted URLs. // https://crbug.com/803839 - error.reason() != net::ERR_BLOCKED_BY_ADMINISTRATOR && // Do not trigger for requests that were blocked by the browser itself. - error.reason() != net::ERR_BLOCKED_BY_CLIENT && !was_failed_post && + !net::IsRequestBlockedError(error.reason()) && !was_failed_post && // Do not trigger for this error code because it is used by Chrome // while an auth prompt is being displayed. error.reason() != net::ERR_INVALID_AUTH_CREDENTIALS && @@ -133,11 +132,7 @@ void ErrorPageHelper::DidStartNavigation( } } -void ErrorPageHelper::DidCommitProvisionalLoad(bool is_same_document_navigation, - ui::PageTransition transition) { - if (is_same_document_navigation) - return; - +void ErrorPageHelper::DidCommitProvisionalLoad(ui::PageTransition transition) { // If a page is committing, either it's an error page and autoreload will be // started again below, or it's a success page and we need to clear autoreload // state. @@ -224,12 +219,17 @@ void ErrorPageHelper::SendCommand( interface->ReportPhishingError(); break; case security_interstitials::CMD_DO_REPORT: + // Used when user opts in to extended safe browsing + interface->DoReport(); + break; case security_interstitials::CMD_DONT_REPORT: + interface->DontReport(); + break; case security_interstitials::CMD_OPEN_REPORTING_PRIVACY: + interface->OpenReportingPrivacy(); + break; case security_interstitials::CMD_OPEN_WHITEPAPER: - // Commands not used by the generic SSL error pages. - // Also not currently used by the safebrowsing error pages. - NOTREACHED(); + interface->OpenWhitepaper(); break; case security_interstitials::CMD_ERROR: case security_interstitials::CMD_TEXT_FOUND: diff --git a/chromium/weblayer/renderer/error_page_helper.h b/chromium/weblayer/renderer/error_page_helper.h index 948ec3a7bfa..a134e113435 100644 --- a/chromium/weblayer/renderer/error_page_helper.h +++ b/chromium/weblayer/renderer/error_page_helper.h @@ -50,8 +50,7 @@ class ErrorPageHelper void DidStartNavigation( const GURL& url, base::Optional<blink::WebNavigationType> navigation_type) override; - void DidCommitProvisionalLoad(bool is_same_document_navigation, - ui::PageTransition transition) override; + void DidCommitProvisionalLoad(ui::PageTransition transition) override; void DidFinishLoad() override; void OnStop() override; void WasShown() override; diff --git a/chromium/weblayer/renderer/weblayer_render_frame_observer.cc b/chromium/weblayer/renderer/weblayer_render_frame_observer.cc index 6986b508257..ded0c16d562 100644 --- a/chromium/weblayer/renderer/weblayer_render_frame_observer.cc +++ b/chromium/weblayer/renderer/weblayer_render_frame_observer.cc @@ -38,7 +38,7 @@ WebLayerRenderFrameObserver::WebLayerRenderFrameObserver( if (!render_frame->IsMainFrame()) return; - // TODO(crbug.com/1025620): Handle case where subframe translation is enabled. + // TODO(crbug.com/1073370): Handle case where subframe translation is enabled. DCHECK(!translate::IsSubFrameTranslationEnabled()); translate_agent_ = new translate::TranslateAgent(render_frame, ISOLATED_WORLD_ID_TRANSLATE, |