Skip to content

Commit

Permalink
Use mojo to transfer WebApplicationInfo and remove render_messages.h
Browse files Browse the repository at this point in the history
Introduces web_page_metadata.mojom that defines mojom::WebPageMetadata
as the subset of fields from WebApplicationInfo that the renderer
currently extracts from a web page and sends to the browser.

WebApplicationInfo is moved into chrome/browser and taught how to be
initialized from a mojom::WebPageMetadata.

Bug: 993189
Change-Id: Ieac278c9a99d5f4c962a52d9bd4455ab35d00c77
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2522125
Commit-Queue: Darin Fisher <darin@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#826504}
  • Loading branch information
Darin Fisher authored and Commit Bot committed Nov 11, 2020
1 parent 11a9ee5 commit 386f785
Show file tree
Hide file tree
Showing 174 changed files with 336 additions and 330 deletions.
1 change: 0 additions & 1 deletion chrome/PRESUBMIT.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
r'.*_mac_.*',
# All the messages files do weird multiple include trickery
r'.*_messages.*\.h$',
r'render_messages.h$',
# Autogenerated window resources files are off limits
r'.*resource.h$',
# Header trickery
Expand Down
42 changes: 24 additions & 18 deletions chrome/browser/android/webapps/add_to_homescreen_data_fetcher.cc
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#include "base/metrics/histogram_macros.h"
#include "base/metrics/user_metrics.h"
#include "base/sequenced_task_runner.h"
#include "base/strings/utf_string_conversions.h"
#include "base/task/post_task.h"
#include "base/task/thread_pool.h"
#include "base/threading/thread_restrictions.h"
Expand All @@ -24,7 +25,6 @@
#include "chrome/browser/installable/installable_manager.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/common/web_application_info.h"
#include "components/dom_distiller/core/url_utils.h"
#include "components/favicon/core/favicon_service.h"
#include "components/favicon_base/favicon_types.h"
Expand Down Expand Up @@ -132,51 +132,57 @@ AddToHomescreenDataFetcher::AddToHomescreenDataFetcher(
&chrome_render_frame);
// Bind the InterfacePtr into the callback so that it's kept alive until
// there's either a connection error or a response.
auto* web_app_info_proxy = chrome_render_frame.get();
web_app_info_proxy->GetWebApplicationInfo(base::BindOnce(
&AddToHomescreenDataFetcher::OnDidGetWebApplicationInfo,
auto* web_page_metadata_proxy = chrome_render_frame.get();
web_page_metadata_proxy->GetWebPageMetadata(base::BindOnce(
&AddToHomescreenDataFetcher::OnDidGetWebPageMetadata,
weak_ptr_factory_.GetWeakPtr(), base::Passed(&chrome_render_frame)));
}

AddToHomescreenDataFetcher::~AddToHomescreenDataFetcher() = default;

void AddToHomescreenDataFetcher::OnDidGetWebApplicationInfo(
void AddToHomescreenDataFetcher::OnDidGetWebPageMetadata(
mojo::AssociatedRemote<chrome::mojom::ChromeRenderFrame>
chrome_render_frame,
const WebApplicationInfo& received_web_app_info) {
chrome::mojom::WebPageMetadataPtr web_page_metadata) {
if (!web_contents())
return;

// Sanitize received_web_app_info.
WebApplicationInfo web_app_info = received_web_app_info;
web_app_info.title =
web_app_info.title.substr(0, chrome::kMaxMetaTagAttributeLength);
// Note, the title should have already been clipped on the renderer side.
// TODO(https://crbug.com/673422): Would be nice if this constraint could be
// specified directly in the mojom file and enforced automatically.
if (web_page_metadata->application_name.size() >
chrome::kMaxMetaTagAttributeLength) {
mojo::ReportBadMessage("application_name is too long");
return;
}

// Set the user-editable title to be the page's title.
shortcut_info_.user_title = web_app_info.title.empty()
shortcut_info_.user_title = web_page_metadata->application_name.empty()
? web_contents()->GetTitle()
: web_app_info.title;
: web_page_metadata->application_name;
shortcut_info_.short_name = shortcut_info_.user_title;
shortcut_info_.name = shortcut_info_.user_title;

if (web_app_info.mobile_capable == WebApplicationInfo::MOBILE_CAPABLE ||
web_app_info.mobile_capable == WebApplicationInfo::MOBILE_CAPABLE_APPLE) {
if (web_page_metadata->mobile_capable ==
chrome::mojom::WebPageMobileCapable::ENABLED ||
web_page_metadata->mobile_capable ==
chrome::mojom::WebPageMobileCapable::ENABLED_APPLE) {
shortcut_info_.display = blink::mojom::DisplayMode::kStandalone;
shortcut_info_.UpdateSource(
ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_STANDALONE);
}

// Record what type of shortcut was added by the user.
switch (web_app_info.mobile_capable) {
case WebApplicationInfo::MOBILE_CAPABLE:
switch (web_page_metadata->mobile_capable) {
case chrome::mojom::WebPageMobileCapable::ENABLED:
base::RecordAction(
base::UserMetricsAction("webapps.AddShortcut.AppShortcut"));
break;
case WebApplicationInfo::MOBILE_CAPABLE_APPLE:
case chrome::mojom::WebPageMobileCapable::ENABLED_APPLE:
base::RecordAction(
base::UserMetricsAction("webapps.AddShortcut.AppShortcutApple"));
break;
case WebApplicationInfo::MOBILE_CAPABLE_UNSPECIFIED:
case chrome::mojom::WebPageMobileCapable::UNSPECIFIED:
base::RecordAction(
base::UserMetricsAction("webapps.AddShortcut.Bookmark"));
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ struct FaviconRawBitmapResult;

class InstallableManager;
struct InstallableData;
struct WebApplicationInfo;

// Aysnchronously fetches and processes data needed to create a shortcut for an
// Android Home screen launcher.
Expand Down Expand Up @@ -56,10 +55,10 @@ class AddToHomescreenDataFetcher : public content::WebContentsObserver {
~AddToHomescreenDataFetcher() override;

// IPC message received when the initialization is finished.
void OnDidGetWebApplicationInfo(
void OnDidGetWebPageMetadata(
mojo::AssociatedRemote<chrome::mojom::ChromeRenderFrame>
chrome_render_frame,
const WebApplicationInfo& web_app_info);
chrome::mojom::WebPageMetadataPtr web_page_metadata);

// Accessors, etc.
const SkBitmap& primary_icon() const { return primary_icon_; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#include "chrome/browser/history/history_service_factory.h"
#include "chrome/browser/installable/installable_manager.h"
#include "chrome/browser/installable/installable_metrics.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h"
#include "chrome/test/base/testing_profile.h"
#include "content/public/browser/web_contents.h"
Expand Down Expand Up @@ -239,12 +239,14 @@ class AddToHomescreenDataFetcherTest : public ChromeRenderViewHostTestHarness {
const char* expected_name,
blink::mojom::DisplayMode display_mode,
bool is_webapk_compatible) {
WebApplicationInfo web_application_info;
web_application_info.title = base::UTF8ToUTF16(kWebApplicationInfoTitle);
chrome::mojom::WebPageMetadataPtr web_page_metadata(
chrome::mojom::WebPageMetadata::New());
web_page_metadata->application_name =
base::ASCIIToUTF16(kWebApplicationInfoTitle);

fetcher->OnDidGetWebApplicationInfo(
fetcher->OnDidGetWebPageMetadata(
mojo::AssociatedRemote<chrome::mojom::ChromeRenderFrame>(),
web_application_info);
std::move(web_page_metadata));
waiter.WaitForDataAvailable();

EXPECT_EQ(is_webapk_compatible, waiter.is_webapk_compatible());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#include "base/test/scoped_feature_list.h"
#include "build/build_config.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h"
#include "chrome/test/base/testing_profile.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
Expand Down
1 change: 0 additions & 1 deletion chrome/browser/chrome_content_browser_client.cc
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,6 @@
#include "chrome/common/pepper_permission_util.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/profiler/thread_profiler_configuration.h"
#include "chrome/common/render_messages.h"
#include "chrome/common/renderer_configuration.mojom.h"
#include "chrome/common/secure_origin_allowlist.h"
#include "chrome/common/url_constants.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#include "chrome/browser/chromeos/app_mode/web_app/web_kiosk_app_manager.h"
#include "chrome/browser/image_decoder/image_decoder.h"
#include "chrome/browser/net/system_network_context_manager.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "components/prefs/pref_service.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
#include "chrome/browser/chromeos/app_mode/web_app/web_kiosk_app_data.h"
#include "chrome/browser/chromeos/app_mode/web_app/web_kiosk_app_manager.h"
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chrome/browser/web_applications/test/test_data_retriever.h"
#include "chrome/browser/web_applications/test/test_web_app_url_loader.h"
#include "chrome/common/web_application_info.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h"
#include "chrome/test/base/scoped_testing_local_state.h"
#include "chrome/test/base/test_browser_window.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#include "chrome/browser/chromeos/policy/device_local_account.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/web_applications/components/web_app_helpers.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chromeos/settings/cros_settings_names.h"
#include "components/prefs/pref_registry_simple.h"

Expand Down
2 changes: 1 addition & 1 deletion chrome/browser/chromeos/apps/apk_web_app_installer.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#include "base/memory/weak_ptr.h"
#include "base/optional.h"
#include "chrome/browser/web_applications/components/web_app_id.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "components/arc/mojom/app.mojom.h"

class GURL;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
#include "chrome/browser/ui/browser_navigator_params.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/web_applications/test/web_app_browsertest_util.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chrome/common/chrome_features.h"
#include "chrome/common/web_application_info.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/mixin_based_in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/webui/chromeos/login/error_screen_handler.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "components/account_id/account_id.h"
#include "content/public/test/browser_task_environment.h"
#include "content/public/test/browser_test.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

#include "chrome/browser/chromeos/web_applications/system_web_app_install_utils.h"
#include "chrome/browser/web_applications/components/web_app_constants.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chromeos/components/camera_app_ui/resources.h"
#include "chromeos/components/camera_app_ui/url_constants.h"
#include "ui/base/l10n/l10n_util.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#include <memory>

#include "chrome/browser/chromeos/web_applications/system_web_app_install_utils.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chromeos/components/connectivity_diagnostics/url_constants.h"
#include "chromeos/grit/connectivity_diagnostics_resources.h"
#include "chromeos/strings/grit/chromeos_strings.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/chromeos/web_applications/system_web_app_install_utils.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chromeos/components/diagnostics_ui/url_constants.h"
#include "chromeos/grit/chromeos_diagnostics_app_resources.h"
#include "third_party/blink/public/mojom/manifest/display_mode.mojom.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/chromeos/web_applications/system_web_app_install_utils.h"
#include "chrome/browser/web_applications/components/web_app_constants.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chromeos/components/file_manager/url_constants.h"
#include "chromeos/grit/chromeos_file_manager_resources.h"
#include "third_party/blink/public/mojom/manifest/display_mode.mojom.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

#include "chrome/browser/chromeos/web_applications/system_web_app_install_utils.h"
#include "chrome/browser/web_applications/components/web_app_constants.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chromeos/components/help_app_ui/url_constants.h"
#include "chromeos/grit/chromeos_help_app_resources.h"
#include "chromeos/strings/grit/chromeos_strings.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/chromeos/web_applications/system_web_app_install_utils.h"
#include "chrome/browser/web_applications/components/web_app_constants.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chromeos/components/media_app_ui/url_constants.h"
#include "chromeos/grit/chromeos_media_app_resources.h"
#include "chromeos/strings/grit/chromeos_strings.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#include "ash/public/cpp/resources/grit/ash_public_unscaled_resources.h"
#include "chrome/browser/chromeos/web_applications/system_web_app_install_utils.h"
#include "chrome/browser/web_applications/components/web_app_constants.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chrome/common/webui_url_constants.h"
#include "chrome/grit/generated_resources.h"
#include "chrome/grit/os_settings_resources.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#include <memory>

#include "chrome/browser/chromeos/web_applications/system_web_app_install_utils.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chromeos/components/print_management/url_constants.h"
#include "chromeos/grit/chromeos_print_management_resources.h"
#include "chromeos/strings/grit/chromeos_strings.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/chromeos/web_applications/system_web_app_install_utils.h"
#include "chrome/browser/web_applications/components/web_app_constants.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chromeos/components/sample_system_web_app_ui/url_constants.h"
#include "chromeos/grit/chromeos_sample_system_web_app_resources.h"
#include "third_party/blink/public/mojom/manifest/display_mode.mojom.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#include <memory>

#include "chrome/browser/chromeos/web_applications/system_web_app_install_utils.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chromeos/components/scanning/url_constants.h"
#include "chromeos/grit/chromeos_scanning_app_resources.h"
#include "chromeos/strings/grit/chromeos_strings.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#include <initializer_list>
#include <string>

#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"

class GURL;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/chromeos/web_applications/system_web_app_install_utils.h"
#include "chrome/common/web_application_info.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chromeos/components/telemetry_extension_ui/url_constants.h"
#include "chromeos/grit/chromeos_telemetry_extension_resources.h"
#include "third_party/blink/public/mojom/manifest/display_mode.mojom.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@

#include "base/feature_list.h"
#include "chrome/browser/chromeos/web_applications/system_web_app_install_utils.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chrome/common/chrome_features.h"
#include "chrome/common/web_application_info.h"
#include "chrome/common/webui_url_constants.h"
#include "chrome/grit/chrome_unscaled_resources.h"
#include "chrome/grit/generated_resources.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/render_messages.h"
#include "chrome/common/renderer_configuration.mojom.h"
#include "components/content_settings/browser/page_specific_content_settings.h"
#include "components/permissions/permission_decision_auto_blocker.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@
#include "chrome/browser/web_applications/components/web_app_install_utils.h"
#include "chrome/browser/web_applications/components/web_app_provider_base.h"
#include "chrome/browser/web_applications/components/web_app_utils.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chrome/common/extensions/extension_metrics.h"
#include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
#include "chrome/common/web_application_info.h"
#include "components/favicon/core/favicon_service.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/web_contents.h"
Expand Down
2 changes: 1 addition & 1 deletion chrome/browser/extensions/convert_web_app.cc
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@
#include "base/time/time.h"
#include "base/values.h"
#include "chrome/browser/web_applications/components/web_app_helpers.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chrome/common/chrome_features.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/extensions/api/url_handlers/url_handlers_parser.h"
#include "chrome/common/extensions/manifest_handlers/app_theme_color_info.h"
#include "chrome/common/extensions/manifest_handlers/linked_app_icons.h"
#include "chrome/common/web_application_info.h"
#include "content/public/common/url_constants.h"
#include "crypto/sha2.h"
#include "extensions/common/constants.h"
Expand Down
2 changes: 1 addition & 1 deletion chrome/browser/extensions/convert_web_app_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@
#include "base/version.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_service_test_base.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chrome/common/chrome_features.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
#include "chrome/common/extensions/manifest_handlers/linked_app_icons.h"
#include "chrome/common/web_application_info.h"
#include "components/services/app_service/public/cpp/file_handler.h"
#include "components/services/app_service/public/cpp/file_handler_info.h"
#include "extensions/browser/extension_system.h"
Expand Down
2 changes: 1 addition & 1 deletion chrome/browser/extensions/crx_installer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@
#include "chrome/browser/extensions/permissions_updater.h"
#include "chrome/browser/extensions/webstore_installer.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/extensions/extension_constants.h"
#include "chrome/common/web_application_info.h"
#include "chrome/grit/generated_resources.h"
#include "components/crx_file/crx_verifier.h"
#include "content/public/browser/browser_task_traits.h"
Expand Down
Loading

0 comments on commit 386f785

Please sign in to comment.