| OLD | NEW |
| 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 "chrome/browser/android/shortcut_info.h" | 5 #include "chrome/browser/android/shortcut_info.h" |
| 6 | 6 |
| 7 ShortcutInfo::ShortcutInfo(const GURL& shortcut_url) | 7 ShortcutInfo::ShortcutInfo(const GURL& shortcut_url) |
| 8 : url(shortcut_url), | 8 : url(shortcut_url), |
| 9 display(blink::WebDisplayModeBrowser), | 9 display(blink::WebDisplayModeBrowser), |
| 10 orientation(blink::WebScreenOrientationLockDefault), | 10 orientation(blink::WebScreenOrientationLockDefault), |
| 11 source(SOURCE_ADD_TO_HOMESCREEN), | 11 source(SOURCE_ADD_TO_HOMESCREEN_SHORTCUT), |
| 12 theme_color(content::Manifest::kInvalidOrMissingColor), | 12 theme_color(content::Manifest::kInvalidOrMissingColor), |
| 13 background_color(content::Manifest::kInvalidOrMissingColor) { | 13 background_color(content::Manifest::kInvalidOrMissingColor) {} |
| 14 } | |
| 15 | 14 |
| 16 ShortcutInfo::ShortcutInfo(const ShortcutInfo& other) = default; | 15 ShortcutInfo::ShortcutInfo(const ShortcutInfo& other) = default; |
| 17 | 16 |
| 18 ShortcutInfo::~ShortcutInfo() { | 17 ShortcutInfo::~ShortcutInfo() { |
| 19 } | 18 } |
| 20 | 19 |
| 21 void ShortcutInfo::UpdateFromManifest(const content::Manifest& manifest) { | 20 void ShortcutInfo::UpdateFromManifest(const content::Manifest& manifest) { |
| 22 if (!manifest.short_name.is_null()) | 21 if (!manifest.short_name.is_null()) |
| 23 short_name = manifest.short_name.string(); | 22 short_name = manifest.short_name.string(); |
| 24 if (!manifest.name.is_null()) | 23 if (!manifest.name.is_null()) |
| (...skipping 10 matching lines...) Expand all Loading... |
| 35 if (manifest.start_url.is_valid()) | 34 if (manifest.start_url.is_valid()) |
| 36 url = manifest.start_url; | 35 url = manifest.start_url; |
| 37 | 36 |
| 38 if (manifest.scope.is_valid()) | 37 if (manifest.scope.is_valid()) |
| 39 scope = manifest.scope; | 38 scope = manifest.scope; |
| 40 | 39 |
| 41 // Set the display based on the manifest value, if any. | 40 // Set the display based on the manifest value, if any. |
| 42 if (manifest.display != blink::WebDisplayModeUndefined) | 41 if (manifest.display != blink::WebDisplayModeUndefined) |
| 43 display = manifest.display; | 42 display = manifest.display; |
| 44 | 43 |
| 45 // 'minimal-ui' is not yet supported, so fallback in this case. | 44 // 'minimal-ui' is not yet supported (see crbug.com/604390). Otherwise, set |
| 46 // See crbug.com/604390. | 45 // the source to be standalone if appropriate. |
| 47 if (manifest.display == blink::WebDisplayModeMinimalUi) | 46 if (manifest.display == blink::WebDisplayModeMinimalUi) { |
| 48 display = blink::WebDisplayModeBrowser; | 47 display = blink::WebDisplayModeBrowser; |
| 48 } else if (display == blink::WebDisplayModeStandalone || |
| 49 display == blink::WebDisplayModeFullscreen) { |
| 50 source = SOURCE_ADD_TO_HOMESCREEN_STANDALONE; |
| 51 } |
| 49 | 52 |
| 50 // Set the orientation based on the manifest value, if any. | 53 // Set the orientation based on the manifest value, if any. |
| 51 if (manifest.orientation != blink::WebScreenOrientationLockDefault) { | 54 if (manifest.orientation != blink::WebScreenOrientationLockDefault) { |
| 52 // Ignore the orientation if the display mode is different from | 55 // Ignore the orientation if the display mode is different from |
| 53 // 'standalone' or 'fullscreen'. | 56 // 'standalone' or 'fullscreen'. |
| 54 // TODO(mlamouri): send a message to the developer console about this. | 57 // TODO(mlamouri): send a message to the developer console about this. |
| 55 if (display == blink::WebDisplayModeStandalone || | 58 if (display == blink::WebDisplayModeStandalone || |
| 56 display == blink::WebDisplayModeFullscreen) { | 59 display == blink::WebDisplayModeFullscreen) { |
| 57 orientation = manifest.orientation; | 60 orientation = manifest.orientation; |
| 58 } | 61 } |
| 59 } | 62 } |
| 60 | 63 |
| 61 // Set the theme color based on the manifest value, if any. | 64 // Set the theme color based on the manifest value, if any. |
| 62 if (manifest.theme_color != content::Manifest::kInvalidOrMissingColor) | 65 if (manifest.theme_color != content::Manifest::kInvalidOrMissingColor) |
| 63 theme_color = manifest.theme_color; | 66 theme_color = manifest.theme_color; |
| 64 | 67 |
| 65 // Set the background color based on the manifest value, if any. | 68 // Set the background color based on the manifest value, if any. |
| 66 if (manifest.background_color != content::Manifest::kInvalidOrMissingColor) | 69 if (manifest.background_color != content::Manifest::kInvalidOrMissingColor) |
| 67 background_color = manifest.background_color; | 70 background_color = manifest.background_color; |
| 68 | 71 |
| 69 // Set the icon urls based on the icons in the manifest, if any. | 72 // Set the icon urls based on the icons in the manifest, if any. |
| 70 icon_urls.clear(); | 73 icon_urls.clear(); |
| 71 for (const content::Manifest::Icon& icon : manifest.icons) | 74 for (const content::Manifest::Icon& icon : manifest.icons) |
| 72 icon_urls.push_back(icon.src.spec()); | 75 icon_urls.push_back(icon.src.spec()); |
| 73 } | 76 } |
| 74 | 77 |
| 75 void ShortcutInfo::UpdateSource(const Source new_source) { | 78 void ShortcutInfo::UpdateSource(const Source new_source) { |
| 76 source = new_source; | 79 source = new_source; |
| 77 } | 80 } |
| OLD | NEW |