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

Side by Side Diff: chrome/browser/media/desktop_media_list.h

Issue 1503563004: Desktop chrome tab capture-chooseDesktopMedia() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 11 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #ifndef CHROME_BROWSER_MEDIA_DESKTOP_MEDIA_LIST_H_ 5 #ifndef CHROME_BROWSER_MEDIA_DESKTOP_MEDIA_LIST_H_
6 #define CHROME_BROWSER_MEDIA_DESKTOP_MEDIA_LIST_H_ 6 #define CHROME_BROWSER_MEDIA_DESKTOP_MEDIA_LIST_H_
7 7
8 #include "base/id_map.h"
9 #include "base/memory/singleton.h"
8 #include "base/strings/string16.h" 10 #include "base/strings/string16.h"
9 #include "base/time/time.h" 11 #include "base/time/time.h"
10 #include "content/public/browser/desktop_media_id.h" 12 #include "content/public/browser/desktop_media_id.h"
13 #include "content/public/browser/web_contents.h"
14 #include "content/public/browser/web_contents_observer.h"
15 #include "ui/gfx/image/image.h"
11 #include "ui/gfx/image/image_skia.h" 16 #include "ui/gfx/image/image_skia.h"
12 17
13 class DesktopMediaListObserver; 18 class DesktopMediaListObserver;
14 19
15 // DesktopMediaList provides the list of desktop media source (screens, windows, 20 // DesktopMediaList provides the list of desktop media source (screens, windows,
16 // tabs), and their thumbnails, to the desktop media picker dialog. It 21 // tabs), and their thumbnails, to the desktop media picker dialog. It
17 // transparently updates the list in the background, and notifies the desktop 22 // transparently updates the list in the background, and notifies the desktop
18 // media picker when something changes. 23 // media picker when something changes.
19 class DesktopMediaList { 24 class DesktopMediaList {
20 public: 25 public:
(...skipping 29 matching lines...) Expand all
50 // notifications will be generated for each existing source as it is 55 // notifications will be generated for each existing source as it is
51 // enumerated. After the initial enumeration the model will be refreshed based 56 // enumerated. After the initial enumeration the model will be refreshed based
52 // on the update period, and notifications generated only for changes in the 57 // on the update period, and notifications generated only for changes in the
53 // model. 58 // model.
54 virtual void StartUpdating(DesktopMediaListObserver* observer) = 0; 59 virtual void StartUpdating(DesktopMediaListObserver* observer) = 0;
55 60
56 virtual int GetSourceCount() const = 0; 61 virtual int GetSourceCount() const = 0;
57 virtual const Source& GetSource(int index) const = 0; 62 virtual const Source& GetSource(int index) const = 0;
58 }; 63 };
59 64
65 // Create a image with an enlarged favicon on its center and black boundary.
66 // If fails, an empty image will return.
67 // The function is used to create a thumbnail for chrome tab preview.
68 gfx::ImageSkia CreateEnlargedFaviconImage(gfx::Size size, gfx::Image& favicon);
69
70 // Register WebContents.
71 class WebContentsRegistry : public content::WebContentsObserver {
72 public:
73 static WebContentsRegistry* GetInstance();
74
75 // Return an id to represent the WebContents.
76 int RegisterWebContents(content::WebContents* web_contents);
77 // Get a registed WebContents by id. If the Webcontent is destroyed, a nullptr
78 // will be return.
79 content::WebContents* GetWebContentsById(int id);
80
81 private:
82 friend struct base::DefaultSingletonTraits<WebContentsRegistry>;
83 WebContentsRegistry();
84 ~WebContentsRegistry() override;
85
86 // content::WebContentsObserver overrides.
87 void WebContentsDestroyed(content::WebContents* web_contents) override;
88
89 IDMap<content::WebContents> registered_web_contents_;
90
91 DISALLOW_COPY_AND_ASSIGN(WebContentsRegistry);
92 };
93
60 #endif // CHROME_BROWSER_MEDIA_DESKTOP_MEDIA_LIST_H_ 94 #endif // CHROME_BROWSER_MEDIA_DESKTOP_MEDIA_LIST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698