Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(297)

Side by Side Diff: third_party/WebKit/Source/modules/presentation/PresentationRequest.cpp

Issue 2174693004: [Presentation API] Add support to content/ for multiple URLs per PresentationRequest. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix constant formatting. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "modules/presentation/PresentationRequest.h" 5 #include "modules/presentation/PresentationRequest.h"
6 6
7 #include "bindings/core/v8/CallbackPromiseAdapter.h" 7 #include "bindings/core/v8/CallbackPromiseAdapter.h"
8 #include "bindings/core/v8/ExceptionState.h" 8 #include "bindings/core/v8/ExceptionState.h"
9 #include "bindings/core/v8/ScriptPromise.h" 9 #include "bindings/core/v8/ScriptPromise.h"
10 #include "bindings/core/v8/ScriptPromiseResolver.h" 10 #include "bindings/core/v8/ScriptPromiseResolver.h"
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(InvalidAccessError, "PresentationRequest::start() requires user gesture." )); 98 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(InvalidAccessError, "PresentationRequest::start() requires user gesture." ));
99 99
100 if (toDocument(getExecutionContext())->isSandboxed(SandboxPresentation)) 100 if (toDocument(getExecutionContext())->isSandboxed(SandboxPresentation))
101 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(SecurityError, "The document is sandboxed and lacks the 'allow-presentati on' flag.")); 101 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(SecurityError, "The document is sandboxed and lacks the 'allow-presentati on' flag."));
102 102
103 WebPresentationClient* client = presentationClient(getExecutionContext()); 103 WebPresentationClient* client = presentationClient(getExecutionContext());
104 if (!client) 104 if (!client)
105 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(InvalidStateError, "The PresentationRequest is no longer associated to a frame.")); 105 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(InvalidStateError, "The PresentationRequest is no longer associated to a frame."));
106 106
107 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 107 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
108 client->startSession(m_url.getString(), new PresentationConnectionCallbacks( resolver, this)); 108 // TODO(crbug.com/627655): Accept multiple URLs per PresentationRequest.
109 WebVector<WebString> presentationUrls(static_cast<size_t>(1));
dcheng 2016/08/30 05:47:31 presentationUrl(1U) here and below
mark a. foltz 2016/08/30 19:57:54 Done.
110 presentationUrls[0] = m_url.getString();
111 client->startSession(presentationUrls, new PresentationConnectionCallbacks(r esolver, this));
109 return resolver->promise(); 112 return resolver->promise();
110 } 113 }
111 114
112 ScriptPromise PresentationRequest::reconnect(ScriptState* scriptState, const Str ing& id) 115 ScriptPromise PresentationRequest::reconnect(ScriptState* scriptState, const Str ing& id)
113 { 116 {
114 if (toDocument(getExecutionContext())->isSandboxed(SandboxPresentation)) 117 if (toDocument(getExecutionContext())->isSandboxed(SandboxPresentation))
115 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(SecurityError, "The document is sandboxed and lacks the 'allow-presentati on' flag.")); 118 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(SecurityError, "The document is sandboxed and lacks the 'allow-presentati on' flag."));
116 119
117 WebPresentationClient* client = presentationClient(getExecutionContext()); 120 WebPresentationClient* client = presentationClient(getExecutionContext());
118 if (!client) 121 if (!client)
119 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(InvalidStateError, "The PresentationRequest is no longer associated to a frame.")); 122 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(InvalidStateError, "The PresentationRequest is no longer associated to a frame."));
120 123
121 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 124 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
122 client->joinSession(m_url.getString(), id, new PresentationConnectionCallbac ks(resolver, this)); 125 // TODO(crbug.com/627655): Accept multiple URLs per PresentationRequest.
126 WebVector<WebString> presentationUrls(static_cast<size_t>(1));
127 presentationUrls[0] = m_url.getString();
128 client->joinSession(presentationUrls, id, new PresentationConnectionCallback s(resolver, this));
123 return resolver->promise(); 129 return resolver->promise();
124 } 130 }
125 131
126 ScriptPromise PresentationRequest::getAvailability(ScriptState* scriptState) 132 ScriptPromise PresentationRequest::getAvailability(ScriptState* scriptState)
127 { 133 {
128 if (toDocument(getExecutionContext())->isSandboxed(SandboxPresentation)) 134 if (toDocument(getExecutionContext())->isSandboxed(SandboxPresentation))
129 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(SecurityError, "The document is sandboxed and lacks the 'allow-presentati on' flag.")); 135 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(SecurityError, "The document is sandboxed and lacks the 'allow-presentati on' flag."));
130 136
131 WebPresentationClient* client = presentationClient(getExecutionContext()); 137 WebPresentationClient* client = presentationClient(getExecutionContext());
132 if (!client) 138 if (!client)
(...skipping 16 matching lines...) Expand all
149 } 155 }
150 156
151 PresentationRequest::PresentationRequest(ExecutionContext* executionContext, con st KURL& url) 157 PresentationRequest::PresentationRequest(ExecutionContext* executionContext, con st KURL& url)
152 : ActiveScriptWrappable(this) 158 : ActiveScriptWrappable(this)
153 , ActiveDOMObject(executionContext) 159 , ActiveDOMObject(executionContext)
154 , m_url(url) 160 , m_url(url)
155 { 161 {
156 } 162 }
157 163
158 } // namespace blink 164 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698