Commit ca449882 authored by Adithya Srinivasan's avatar Adithya Srinivasan Committed by Commit Bot

Update SpeechRecognitionSessionConfig to use url::Origin

Bug: 781655
Change-Id: Ic009ba42a61d3e419d6e4ac449bc6656fdf37321
Reviewed-on: https://chromium-review.googlesource.com/1015785Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Adithya Srinivasan <adithyas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555426}
parent 9c8121e0
......@@ -71,11 +71,11 @@ void SpeechRecognitionDispatcherHost::StartRequest(
// Check that the origin specified by the renderer process is one
// that it is allowed to access.
if (params->origin_url != "null" &&
if (!params->origin.unique() &&
!ChildProcessSecurityPolicyImpl::GetInstance()->CanRequestURL(
render_process_id_, GURL(params->origin_url))) {
render_process_id_, params->origin.GetURL())) {
LOG(ERROR) << "SRDH::OnStartRequest, disallowed origin: "
<< params->origin_url;
<< params->origin.Serialize();
return;
}
......@@ -258,7 +258,7 @@ void SpeechRecognitionDispatcherHost::StartSessionOnIO(
DCHECK_CURRENTLY_ON(BrowserThread::IO);
SpeechRecognitionSessionContext context;
context.context_name = params->origin_url;
context.security_origin = params->origin;
context.render_process_id = render_process_id_;
context.render_frame_id = render_frame_id_;
context.embedder_render_process_id = embedder_render_process_id;
......@@ -269,7 +269,7 @@ void SpeechRecognitionDispatcherHost::StartSessionOnIO(
config.language = params->language;
config.grammars = params->grammars;
config.max_hypotheses = params->max_hypotheses;
config.origin_url = params->origin_url;
config.origin = params->origin;
config.initial_context = context;
config.url_request_context_getter = context_getter_.get();
config.filter_profanities = filter_profanities;
......
......@@ -277,7 +277,7 @@ int SpeechRecognitionManagerImpl::CreateSession(
remote_engine_config.continuous = config.continuous;
remote_engine_config.interim_results = config.interim_results;
remote_engine_config.max_hypotheses = config.max_hypotheses;
remote_engine_config.origin_url = config.origin_url;
remote_engine_config.origin_url = config.origin.Serialize();
remote_engine_config.auth_token = config.auth_token;
remote_engine_config.auth_scope = config.auth_scope;
remote_engine_config.preamble = config.preamble;
......@@ -349,8 +349,7 @@ void SpeechRecognitionManagerImpl::RecognitionAllowedCallback(int session_id,
SpeechRecognitionSessionContext& context = session->context;
context.label = media_stream_manager_->MakeMediaAccessRequest(
context.render_process_id, context.render_frame_id, context.request_id,
StreamControls(true, false),
url::Origin::Create(GURL(context.context_name)),
StreamControls(true, false), context.security_origin,
base::BindOnce(
&SpeechRecognitionManagerImpl::MediaRequestPermissionCallback,
weak_factory_.GetWeakPtr(), session_id));
......
......@@ -5,6 +5,7 @@
module content.mojom;
import "content/public/common/speech_recognition_grammar.mojom";
import "url/mojom/origin.mojom";
// Used to start a speech recognition session.
struct StartSpeechRecognitionRequestParams {
......@@ -18,8 +19,7 @@ struct StartSpeechRecognitionRequestParams {
array<content.mojom.SpeechRecognitionGrammar> grammars;
// URL of the page (or iframe if applicable).
// TODO(adithyas): Make this a mojom origin instead.
string origin_url;
url.mojom.Origin origin;
// Maximum number of hypotheses allowed for each results.
uint32 max_hypotheses;
......
......@@ -16,6 +16,7 @@
#include "content/public/browser/speech_recognition_session_preamble.h"
#include "content/public/common/speech_recognition_grammar.h"
#include "net/url_request/url_request_context_getter.h"
#include "url/origin.h"
namespace content {
......@@ -29,7 +30,7 @@ struct CONTENT_EXPORT SpeechRecognitionSessionConfig {
std::string language;
SpeechRecognitionGrammarArray grammars;
std::string origin_url;
url::Origin origin;
bool filter_profanities;
bool continuous;
bool interim_results;
......
......@@ -10,6 +10,7 @@
#include "content/common/content_export.h"
#include "content/public/common/media_stream_request.h"
#include "ui/gfx/geometry/rect.h"
#include "url/origin.h"
namespace content {
......@@ -37,9 +38,9 @@ struct CONTENT_EXPORT SpeechRecognitionSessionContext {
// The request id provided by the originating SpeechRecognitionDispatcher.
int request_id;
// A textual description of the context (website, extension name) that is
// requesting recognition, for prompting security notifications to the user.
std::string context_name;
// Origin that is requesting recognition, for prompting security notifications
// to the user.
url::Origin security_origin;
// The label for the permission request, it is used for request abortion.
std::string label;
......
......@@ -85,7 +85,7 @@ void SpeechRecognitionDispatcher::Start(
msg_params->max_hypotheses = static_cast<uint32_t>(params.MaxAlternatives());
msg_params->continuous = params.Continuous();
msg_params->interim_results = params.InterimResults();
msg_params->origin_url = params.Origin().ToString().Utf8();
msg_params->origin = params.Origin();
msg_params->request_id = GetOrCreateIDForHandle(handle);
GetSpeechRecognitionHost().StartRequest(std::move(msg_params));
......
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