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

Side by Side Diff: content/common/presentation/presentation_service.mojom

Issue 979413002: [Presentation API] Additional plumbing for PresentationServiceImpl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@REAL-NEW-MASTER
Patch Set: Added handling for overlapping requests, default presentation id, 1-UA fallback Created 5 years, 9 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 module presentation; 5 module presentation;
6 6
7 import "presentation_session.mojom"; 7 import "presentation_session.mojom";
8 8
9 struct PresentationSessionInfo { 9 struct PresentationSessionInfo {
10 PresentationSession session;
11 string url; 10 string url;
12 string id; 11 string id;
13 }; 12 };
14 13
15 enum PresentationErrorType { 14 enum PresentationErrorType {
16 NO_AVAILABLE_SCREENS, 15 NO_AVAILABLE_SCREENS,
17 SESSION_REQUEST_CANCELLED, 16 SESSION_REQUEST_CANCELLED,
18 NO_PRESENTATION_FOUND, 17 NO_PRESENTATION_FOUND,
19 UNKNOWN, 18 UNKNOWN,
20 }; 19 };
21 20
22 struct PresentationError { 21 struct PresentationError {
23 PresentationErrorType errorType; 22 PresentationErrorType error_type;
24 string message; 23 string message;
25 }; 24 };
26 25
27 interface PresentationService { 26 interface PresentationService {
27 // Called when the browser parses the specified default presentation URL or
28 // presentation ID.
29 SetDefaultPresentationUrl(
30 string default_presentation_url,
31 string? default_presentation_id);
32
28 // Returns the last screen availability state if it’s changed since the last 33 // Returns the last screen availability state if it’s changed since the last
29 // time the method was called. The client has to call this method again when 34 // time the method was called. The client has to call this method again when
30 // handling the result (provided via Mojo callback) to get the next update 35 // handling the result (provided via Mojo callback) to get the next update
31 // about the availability status. 36 // about the availability status.
32 // May start discovery of the presentation screens. The implementation might 37 // May start discovery of the presentation screens. The implementation might
33 // stop discovery once there are no active calls to GetScreenAvailability. 38 // stop discovery once there are no active calls to GetScreenAvailability.
34 // |presentation_url| can be specified to help the implementation to filter 39 // |presentation_url| can be specified to help the implementation to filter
35 // out incompatible screens. 40 // out incompatible screens.
36 GetScreenAvailability(string? presentation_url) => (bool available); 41 GetScreenAvailability(string? presentation_url) =>
42 (string? presentation_url, bool available);
37 43
38 // Called when the frame no longer listens to the 44 // Called when the frame no longer listens to the
39 // |availablechange| event. 45 // |availablechange| event.
40 OnScreenAvailabilityListenerRemoved(); 46 OnScreenAvailabilityListenerRemoved(string? presentation_url);
41 47
42 // Called when startSession() is called by the frame. The result callback 48 // Called when startSession() is called by the frame. The result callback
43 // will return a non-null and valid PresentationSessionInfo if starting the 49 // will return a non-null and valid PresentationSessionInfo if starting the
44 // session succeeded, or null with a PresentationError if starting the 50 // session succeeded, or null with a PresentationError if starting the
45 // session failed. 51 // session failed.
46 // The presentation id is always returned along with the initialized 52 // The presentation id is always returned along with the initialized
47 // session on success. 53 // session on success.
48 // If the UA identifies a matching session (same presentation url and id), 54 // If the UA identifies a matching session (same presentation url and id),
49 // the user may choose this existing session and the page will join it 55 // the user may choose this existing session and the page will join it
50 // rather than get a new one. An empty presentation id means that the 56 // rather than get a new one. An empty presentation id means that the
51 // UA will generate the presentation id. 57 // UA will generate the presentation id.
52 StartSession(string presentation_url, string? presentation_id) 58 StartSession(string presentation_url, string? presentation_id)
53 => (PresentationSessionInfo? sessionInfo, PresentationError? error); 59 => (PresentationSessionInfo? sessionInfo, PresentationError? error);
54 60
55 // Called when joinSession() is called by the frame. The result callback 61 // Called when joinSession() is called by the frame. The result callback
56 // works the same as for the method above. JoinSession will join a known 62 // works the same as for the method above. JoinSession will join a known
57 // session (i.e. when the page navigates or the user opens another tab) 63 // session (i.e. when the page navigates or the user opens another tab)
58 // silently and without user action. 64 // silently and without user action.
59 JoinSession(string presentation_url, string? presentation_id) 65 JoinSession(string presentation_url, string? presentation_id)
60 => (PresentationSessionInfo? sessionInfo, PresentationError? error); 66 => (PresentationSessionInfo? sessionInfo, PresentationError? error);
61 }; 67 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698