1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_UI_VIEWS_TABS_TAB_RENDERER_DATA_H_ 6 #define CHROME_BROWSER_UI_VIEWS_TABS_TAB_RENDERER_DATA_H_ 7 8 #include "base/process/kill.h" 9 #include "base/strings/string16.h" 10 #include "chrome/browser/ui/tabs/tab_utils.h" 11 #include "chrome/browser/ui/views/chrome_views_export.h" 12 #include "ui/gfx/image/image_skia.h" 13 #include "url/gurl.h" 14 15 // Wraps the state needed by the renderers. 16 struct CHROME_VIEWS_EXPORT TabRendererData { 17 // Different types of network activity for a tab. The NetworkState of a tab 18 // may be used to alter the UI (e.g. show different kinds of loading 19 // animations). 20 enum NetworkState { 21 NETWORK_STATE_NONE, // no network activity. 22 NETWORK_STATE_WAITING, // waiting for a connection. 23 NETWORK_STATE_LOADING, // connected, transferring data. 24 }; 25 26 TabRendererData(); 27 ~TabRendererData(); 28 29 // This interprets the crashed status to decide whether or not this 30 // render data represents a tab that is "crashed" (i.e. the render 31 // process died unexpectedly). 32 bool IsCrashed() const { 33 return (crashed_status == base::TERMINATION_STATUS_PROCESS_WAS_KILLED || 34 crashed_status == base::TERMINATION_STATUS_PROCESS_CRASHED || 35 crashed_status == base::TERMINATION_STATUS_ABNORMAL_TERMINATION); 36 } 37 38 // Returns true if the TabRendererData is same as given |data|. 39 bool Equals(const TabRendererData& data); 40 41 gfx::ImageSkia favicon; 42 NetworkState network_state; 43 base::string16 title; 44 GURL url; 45 bool loading; 46 base::TerminationStatus crashed_status; 47 bool incognito; 48 bool show_icon; 49 bool mini; 50 bool blocked; 51 bool app; 52 TabMediaState media_state; 53 }; 54 55 #endif // CHROME_BROWSER_UI_VIEWS_TABS_TAB_RENDERER_DATA_H_ 56