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

Side by Side Diff: content/browser/media/cdm/browser_cdm_manager.cc

Issue 1011953003: Refactor Permissions related method out of ContentBrowserClient. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@permission_type_enum_class
Patch Set: fix cros Created 5 years, 8 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/browser/media/cdm/browser_cdm_manager.h" 5 #include "content/browser/media/cdm/browser_cdm_manager.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
11 #include "base/memory/scoped_ptr.h" 11 #include "base/memory/scoped_ptr.h"
12 #include "base/task_runner.h" 12 #include "base/task_runner.h"
13 #include "content/common/media/cdm_messages.h" 13 #include "content/common/media/cdm_messages.h"
14 #include "content/public/browser/browser_context.h"
14 #include "content/public/browser/browser_thread.h" 15 #include "content/public/browser/browser_thread.h"
15 #include "content/public/browser/content_browser_client.h" 16 #include "content/public/browser/content_browser_client.h"
17 #include "content/public/browser/permission_manager.h"
16 #include "content/public/browser/permission_type.h" 18 #include "content/public/browser/permission_type.h"
17 #include "content/public/browser/render_frame_host.h" 19 #include "content/public/browser/render_frame_host.h"
18 #include "content/public/browser/render_process_host.h" 20 #include "content/public/browser/render_process_host.h"
19 #include "content/public/browser/render_view_host.h" 21 #include "content/public/browser/render_view_host.h"
20 #include "content/public/browser/web_contents.h" 22 #include "content/public/browser/web_contents.h"
21 #include "media/base/browser_cdm.h" 23 #include "media/base/browser_cdm.h"
22 #include "media/base/browser_cdm_factory.h" 24 #include "media/base/browser_cdm_factory.h"
23 #include "media/base/cdm_promise.h" 25 #include "media/base/cdm_promise.h"
24 #include "media/base/limits.h" 26 #include "media/base/limits.h"
25 27
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 // |task_runner_|. Be careful about thread safety! 514 // |task_runner_|. Be careful about thread safety!
513 void BrowserCdmManager::CheckPermissionStatusOnUIThread( 515 void BrowserCdmManager::CheckPermissionStatusOnUIThread(
514 int render_frame_id, 516 int render_frame_id,
515 const GURL& security_origin, 517 const GURL& security_origin,
516 const base::Callback<void(bool)>& permission_status_cb) { 518 const base::Callback<void(bool)>& permission_status_cb) {
517 DCHECK_CURRENTLY_ON(BrowserThread::UI); 519 DCHECK_CURRENTLY_ON(BrowserThread::UI);
518 520
519 RenderFrameHost* rfh = 521 RenderFrameHost* rfh =
520 RenderFrameHost::FromID(render_process_id_, render_frame_id); 522 RenderFrameHost::FromID(render_process_id_, render_frame_id);
521 WebContents* web_contents = WebContents::FromRenderFrameHost(rfh); 523 WebContents* web_contents = WebContents::FromRenderFrameHost(rfh);
522 GURL embedding_origin = web_contents->GetLastCommittedURL().GetOrigin(); 524 PermissionManager* permission_manager =
525 web_contents->GetBrowserContext()->GetPermissionManager();
526 if (!permission_manager) {
527 permission_status_cb.Run(false);
528 return;
529 }
523 530
524 PermissionStatus permission_status = 531 PermissionStatus permission_status = permission_manager->GetPermissionStatus(
525 GetContentClient()->browser()->GetPermissionStatus( 532 content::PermissionType::PROTECTED_MEDIA_IDENTIFIER,
526 content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, 533 security_origin,
527 web_contents->GetBrowserContext(), security_origin, embedding_origin); 534 web_contents->GetLastCommittedURL().GetOrigin());
528 535
529 bool allowed = (permission_status == PERMISSION_STATUS_GRANTED); 536 bool allowed = (permission_status == PERMISSION_STATUS_GRANTED);
530 if (!task_runner_->RunsTasksOnCurrentThread()) { 537 if (!task_runner_->RunsTasksOnCurrentThread()) {
531 task_runner_->PostTask(FROM_HERE, 538 task_runner_->PostTask(FROM_HERE,
532 base::Bind(permission_status_cb, allowed)); 539 base::Bind(permission_status_cb, allowed));
533 } else { 540 } else {
534 permission_status_cb.Run(allowed); 541 permission_status_cb.Run(allowed);
535 } 542 }
536 } 543 }
537 544
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
573 } 580 }
574 581
575 // Only the temporary session type is supported in browser CDM path. 582 // Only the temporary session type is supported in browser CDM path.
576 // TODO(xhwang): Add SessionType support if needed. 583 // TODO(xhwang): Add SessionType support if needed.
577 cdm->CreateSessionAndGenerateRequest(media::MediaKeys::TEMPORARY_SESSION, 584 cdm->CreateSessionAndGenerateRequest(media::MediaKeys::TEMPORARY_SESSION,
578 init_data_type_string, &init_data[0], 585 init_data_type_string, &init_data[0],
579 init_data.size(), promise.Pass()); 586 init_data.size(), promise.Pass());
580 } 587 }
581 588
582 } // namespace content 589 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/render_frame_host_impl.cc ('k') | content/browser/permissions/permission_service_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698