Commit bae32143 authored by takumif's avatar takumif Committed by Commit Bot

[Media Router] Remove the extension ID getter from MRMojoImpl

This CL removes the media_route_provider_extension_id() getter from
MediaRouterMojoImpl, which was previously being accessed by static-casting
MediaRouter into MediaRouterMojoImpl. The getter in EventPageRequestManager is
now used.

It seems that we cannot simply hard-code the ID, since it's different between
dev and release builds of the component extension.

BUG=597778
BUG=727993

Review-Url: https://codereview.chromium.org/2970273002
Cr-Commit-Position: refs/heads/master@{#485439}
parent f01e385c
......@@ -222,11 +222,6 @@ void MediaRouterMojoImpl::OnRoutesUpdated(
RemoveInvalidRouteControllers(routes);
}
const std::string& MediaRouterMojoImpl::media_route_provider_extension_id()
const {
return event_page_request_manager_->media_route_provider_extension_id();
}
void MediaRouterMojoImpl::RouteResponseReceived(
const std::string& presentation_id,
bool is_incognito,
......
......@@ -115,9 +115,6 @@ class MediaRouterMojoImpl : public MediaRouterBase,
scoped_refptr<MediaRouteController> GetRouteController(
const MediaRoute::Id& route_id) override;
// TODO(crbug.com/597778): Remove this getter.
const std::string& media_route_provider_extension_id() const;
void set_instance_id_for_test(const std::string& instance_id) {
instance_id_ = instance_id;
}
......@@ -218,7 +215,7 @@ class MediaRouterMojoImpl : public MediaRouterBase,
// Binds |this| to a Mojo interface request, so that clients can acquire a
// handle to a MediaRouterMojoImpl instance via the Mojo service connector.
// Stores the ID of |extension| in |media_route_provider_extension_id_|.
// Passes the extension's ID to the event page request manager.
void BindToMojoRequest(
mojo::InterfaceRequest<mojom::MediaRouter> request,
const extensions::Extension& extension);
......
......@@ -9,6 +9,8 @@
#include "base/logging.h"
#include "base/metrics/user_metrics.h"
#include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/media/router/event_page_request_manager.h"
#include "chrome/browser/media/router/event_page_request_manager_factory.h"
#include "chrome/browser/media/router/media_router_factory.h"
#include "chrome/browser/media/router/mojo/media_router_mojo_impl.h"
#include "chrome/browser/profiles/profile.h"
......@@ -182,17 +184,15 @@ void MediaRouterContextualMenu::ExecuteCommand(int command_id,
void MediaRouterContextualMenu::ReportIssue() {
// Opens feedback page loaded from the media router extension.
// This is temporary until feedback UI is redesigned.
// TODO(crbug.com/597778): remove reference to MediaRouterMojoImpl
media_router::MediaRouterMojoImpl* media_router =
static_cast<media_router::MediaRouterMojoImpl*>(
media_router::MediaRouterFactory::GetApiForBrowserContext(
static_cast<content::BrowserContext*>(browser_->profile())));
if (media_router->media_route_provider_extension_id().empty())
media_router::EventPageRequestManager* request_manager =
media_router::EventPageRequestManagerFactory::GetApiForBrowserContext(
browser_->profile());
if (request_manager->media_route_provider_extension_id().empty())
return;
std::string feedback_url(extensions::kExtensionScheme +
std::string feedback_url(
extensions::kExtensionScheme +
std::string(url::kStandardSchemeSeparator) +
media_router->media_route_provider_extension_id() +
"/feedback.html");
request_manager->media_route_provider_extension_id() + "/feedback.html");
chrome::ShowSingletonTab(browser_, GURL(feedback_url));
}
......
......@@ -4,8 +4,8 @@
#include "chrome/browser/ui/webui/cast/cast_ui.h"
#include "chrome/browser/media/router/media_router_factory.h"
#include "chrome/browser/media/router/mojo/media_router_mojo_impl.h"
#include "chrome/browser/media/router/event_page_request_manager.h"
#include "chrome/browser/media/router/event_page_request_manager_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/url_constants.h"
#include "chrome/grit/browser_resources.h"
......@@ -16,11 +16,11 @@
CastUI::CastUI(content::WebUI* web_ui)
: content::WebUIController(web_ui) {
// Retrieve the ID of the component extension.
// TODO(crbug.com/597778): remove reference to MediaRouterMojoImpl.
auto* router = static_cast<media_router::MediaRouterMojoImpl*>(
media_router::MediaRouterFactory::GetApiForBrowserContext(
web_ui->GetWebContents()->GetBrowserContext()));
std::string extension_id = router->media_route_provider_extension_id();
auto* event_page_request_manager =
media_router::EventPageRequestManagerFactory::GetApiForBrowserContext(
web_ui->GetWebContents()->GetBrowserContext());
std::string extension_id =
event_page_request_manager->media_route_provider_extension_id();
// Set up the chrome://cast data source and add required resources.
content::WebUIDataSource* html_source =
......
......@@ -18,6 +18,8 @@
#include "build/build_config.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/media/router/create_presentation_connection_request.h"
#include "chrome/browser/media/router/event_page_request_manager.h"
#include "chrome/browser/media/router/event_page_request_manager_factory.h"
#include "chrome/browser/media/router/issues_observer.h"
#include "chrome/browser/media/router/media_router.h"
#include "chrome/browser/media/router/media_router_factory.h"
......@@ -230,9 +232,11 @@ MediaRouterUI::MediaRouterUI(content::WebUI* web_ui)
content::WebContents* wc = web_ui->GetWebContents();
DCHECK(wc);
content::BrowserContext* context = wc->GetBrowserContext();
router_ =
MediaRouterFactory::GetApiForBrowserContext(wc->GetBrowserContext());
router_ = MediaRouterFactory::GetApiForBrowserContext(context);
event_page_request_manager_ =
EventPageRequestManagerFactory::GetApiForBrowserContext(context);
// Allows UI to load extensionview.
// TODO(haibinlu): limit object-src to current extension once crbug/514866
......@@ -858,9 +862,7 @@ const std::set<MediaCastMode>& MediaRouterUI::cast_modes() const {
}
const std::string& MediaRouterUI::GetRouteProviderExtensionId() const {
// TODO(crbug.com/597778): remove reference to MediaRouterMojoImpl
return static_cast<MediaRouterMojoImpl*>(router_)
->media_route_provider_extension_id();
return event_page_request_manager_->media_route_provider_extension_id();
}
void MediaRouterUI::SetUIInitializationTimer(const base::Time& start_time) {
......
......@@ -44,6 +44,7 @@ class Browser;
namespace media_router {
class CreatePresentationConnectionRequest;
class EventPageRequestManager;
class IssuesObserver;
class MediaRoute;
class MediaRouter;
......@@ -414,6 +415,9 @@ class MediaRouterUI
// Pointer to the MediaRouter for this instance's BrowserContext.
MediaRouter* router_;
// Request manager for the Media Router component extension.
const EventPageRequestManager* event_page_request_manager_;
// The start time for UI initialization metrics timer. When a dialog has been
// been painted and initialized with initial data, this should be cleared.
base::Time start_time_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment