WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
142541
[Mac] Update AirPlay handling
https://bugs.webkit.org/show_bug.cgi?id=142541
Summary
[Mac] Update AirPlay handling
Eric Carlson
Reported
2015-03-10 13:09:11 PDT
Update AirPlay route handling
Attachments
Proposed patch.
(111.93 KB, patch)
2015-03-10 13:52 PDT
,
Eric Carlson
no flags
Details
Formatted Diff
Diff
Updated patch.
(112.59 KB, patch)
2015-03-11 08:05 PDT
,
Eric Carlson
no flags
Details
Formatted Diff
Diff
Updated patch.
(109.39 KB, patch)
2015-03-11 14:21 PDT
,
Eric Carlson
no flags
Details
Formatted Diff
Diff
Updated patch.
(110.63 KB, patch)
2015-03-11 14:37 PDT
,
Eric Carlson
sam
: review+
Details
Formatted Diff
Diff
Patch for landing.
(110.50 KB, patch)
2015-03-11 14:56 PDT
,
Eric Carlson
no flags
Details
Formatted Diff
Diff
Rebased patch for landing
(83.73 KB, patch)
2015-03-11 18:28 PDT
,
Eric Carlson
no flags
Details
Formatted Diff
Diff
Show Obsolete
(5)
View All
Add attachment
proposed patch, testcase, etc.
Eric Carlson
Comment 1
2015-03-10 13:52:23 PDT
Created
attachment 248353
[details]
Proposed patch.
WebKit Commit Bot
Comment 2
2015-03-10 13:54:44 PDT
Attachment 248353
[details]
did not pass style-queue: ERROR: Source/WebCore/platform/graphics/avfoundation/AVPlaybackTargetMac.mm:60: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/WebCore/platform/graphics/avfoundation/AVPlaybackTargetMac.mm:60: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 2 in 53 files If any of these errors are false positives, please file a bug against check-webkit-style.
Eric Carlson
Comment 3
2015-03-11 08:05:26 PDT
Created
attachment 248418
[details]
Updated patch.
WebKit Commit Bot
Comment 4
2015-03-11 08:08:14 PDT
Attachment 248418
[details]
did not pass style-queue: ERROR: Source/WebCore/platform/graphics/avfoundation/AVPlaybackTargetMac.mm:60: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/WebCore/platform/graphics/avfoundation/AVPlaybackTargetMac.mm:60: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 2 in 53 files If any of these errors are false positives, please file a bug against check-webkit-style.
Eric Carlson
Comment 5
2015-03-11 14:21:29 PDT
Created
attachment 248447
[details]
Updated patch.
WebKit Commit Bot
Comment 6
2015-03-11 14:23:43 PDT
Attachment 248447
[details]
did not pass style-queue: ERROR: Source/WebCore/platform/graphics/avfoundation/MediaPlaybackTargetMac.mm:60: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/WebCore/platform/graphics/avfoundation/MediaPlaybackTargetMac.mm:60: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WebKit2/UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.mm:33: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 3 in 47 files If any of these errors are false positives, please file a bug against check-webkit-style.
Eric Carlson
Comment 7
2015-03-11 14:37:01 PDT
Created
attachment 248451
[details]
Updated patch.
WebKit Commit Bot
Comment 8
2015-03-11 14:38:55 PDT
Attachment 248451
[details]
did not pass style-queue: ERROR: Source/WebCore/platform/graphics/avfoundation/MediaPlaybackTargetMac.mm:60: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/WebCore/platform/graphics/avfoundation/MediaPlaybackTargetMac.mm:60: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 2 in 48 files If any of these errors are false positives, please file a bug against check-webkit-style.
Sam Weinig
Comment 9
2015-03-11 14:47:16 PDT
Comment on
attachment 248451
[details]
Updated patch. View in context:
https://bugs.webkit.org/attachment.cgi?id=248451&action=review
> Source/WebCore/dom/Document.cpp:6497 > + for (auto targetClient : m_playbackTargetClients) {
I would write this as 'auto* client : m_playbackTargetClients'
> Source/WebCore/dom/Document.cpp:6513 > + for (auto client : m_playbackTargetClients)
I would write this as 'auto* client : m_playbackTargetClients'
> Source/WebCore/dom/Document.cpp:6521 > + for (auto client : m_playbackTargetClients) {
I would write this as 'auto* client : m_playbackTargetClients'
> Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:2710 > + bool wirelessTarget = false; > + > + wirelessTarget = m_avPlayer.get().externalPlaybackActive;
No need to use three lines for this.
> Source/WebKit2/UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.mm:162 > +- (void)observeValueForKeyPath:keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
I think you are missing the type of keyPath. It should probably be (id)keyPath
Eric Carlson
Comment 10
2015-03-11 14:56:55 PDT
Created
attachment 248454
[details]
Patch for landing.
Eric Carlson
Comment 11
2015-03-11 18:28:37 PDT
Created
attachment 248475
[details]
Rebased patch for landing
WebKit Commit Bot
Comment 12
2015-03-11 18:29:56 PDT
Attachment 248475
[details]
did not pass style-queue: ERROR: Source/WebCore/platform/graphics/avfoundation/MediaPlaybackTargetMac.mm:60: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/WebCore/platform/graphics/avfoundation/MediaPlaybackTargetMac.mm:60: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 2 in 36 files If any of these errors are false positives, please file a bug against check-webkit-style.
Eric Carlson
Comment 13
2015-03-11 18:55:17 PDT
Committed
r181423
-
http://trac.webkit.org/changeset/181423
Joseph Pecoraro
Comment 14
2015-03-11 23:17:49 PDT
Comment on
attachment 248451
[details]
Updated patch. View in context:
https://bugs.webkit.org/attachment.cgi?id=248451&action=review
Cool! I realize this landed, I just have some questions / comments that don't really need to be addressed unless you desire to.
> Source/WebCore/page/ChromeClient.h:449 > + virtual void showPlaybackTargetPicker(const WebCore::IntPoint&, bool) { }
Nit: It is unclear what this bool flag is for, it would be nice to have a name in the header.
> Source/WebCore/page/Page.cpp:1703 > +
Nit: Empty line could be removed.
> Source/WebCore/page/Page.cpp:1729 > + for (Frame* frame = &mainFrame(); frame; frame = frame->tree().traverseNext()) { > + Document* document = frame->document(); > + if (frame->document() == m_documentRequestingPlaybackTargetPicker) { > + documentThatRequestedPicker = document; > + continue; > + } > + frame->document()->didChoosePlaybackTarget(target); > + } > + > + if (documentThatRequestedPicker) > + documentThatRequestedPicker->didChoosePlaybackTarget(target);
Any particular reason this delays to call the documentThatRequested last? Is there a behavior here that is significant that should be documented? ChangeLog doesn't say.
> Source/WebCore/page/Page.cpp:1755 > + > +
Nit: extra newline can be removed.
> Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm:42 > +#import <WebCore/SoftLinking.h> > +#import <objc/runtime.h>
Are these needed? I don't see any objc_* or SOFT_LINK macros.
> Source/WebKit2/UIProcess/WebMediaPlaybackTargetPickerProxy.cpp:40 > + m_client = 0;
nullptr
> Source/WebKit2/UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.h:38 > +namespace WebCore { > +class MediaPlaybackTarget; > +class FloatRect; > +}
These should already be covered by WebMediaPlaybackTargetPickerProxy.h.
> Source/WebKit2/UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.h:45 > +class WebMediaPlaybackTargetPickerProxyMac : public WebMediaPlaybackTargetPickerProxy {
Nit: You can mark the class as "final"
> Source/WebKit2/UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.mm:55 > +- (id)initWithCallback:(WebMediaPlaybackTargetPickerProxyMac*)callback;
Nit: "instancetype" instead of "id".
> Source/WebKit2/UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.mm:57 > +- (void)observeValueForKeyPath:keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context;
Nit: You should provide a type of "keyPath" instead of leaving it off, which I think means (id).
> Source/WebKit2/UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.mm:110 > + [m_devicePickerMenuController.get() addObserver:m_devicePickerMenuControllerDelegate.get() forKeyPath:@"externalOutputDeviceAvailable" options:NSKeyValueObservingOptionNew context:nullptr]; > + [m_devicePickerMenuController.get() addObserver:m_devicePickerMenuControllerDelegate.get() forKeyPath:@"externalOutputDevicePicked" options:NSKeyValueObservingOptionNew context:nullptr];
These strings look like magic. Where do they come from? Can they be made constants to avoid accidental typos?
> Source/WebKit2/UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.mm:166 > + UNUSED_PARAM(change); > + UNUSED_PARAM(context); > + UNUSED_PARAM(object);
I don't think we need UNUSED_PARAM in ObjC but it can't hurt to leave them in.
> Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:1107 > + // IntPoint scrollPositionAtNewScale = mainFrameView()->rootViewToContents(-centerInViewCoordinates);
Stale comment? Remove.
Eric Carlson
Comment 15
2015-03-12 10:21:05 PDT
(In reply to
comment #14
)
> Comment on
attachment 248451
[details]
> Thanks for the detailed post-review! I fixed all of the issues you pointed out and landed some changes that were in the last patch but which didn't make the initial commit because of a bungled merge in
r181442
.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug