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