A display device and a control method for managing the life cycle of plug-in objects

By retaining its instance when the plug-in object is created and not releasing it when it is removed, the problem of abnormal display of the browser page is solved, and the normal display and efficient operation of the plug-in object is achieved.

CN116340680BActive Publication Date: 2025-08-05HISENSE ELECTRONICS TECH SHENZHEN CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111601740.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-12-24
Publication Date
2025-08-05
Estimated Expiration
2041-12-24

AI Technical Summary

Technical Problem

The plug-in creation and release timing formed by the plug-in cascade style sheet attribute settings in the browser page and the coupling relationship between the plug-in and the DOM tree is inappropriate, resulting in abnormal display of the browser page.

Method used

When the plug-in object is created, when it is determined that it is a hybrid broadcast broadband TV object, create the corresponding plug-in instance and keep its instance not released until it is added to the system again to ensure the normal display of the plug-in object; after the plug-in object is removed from the DOM tree, the control system does not release the plug-in instance until it is added again can be used directly.

Benefits of technology

It realizes the normal display of hybrid broadcast broadband TV pages, avoids frequent creation and release of plug-ins, optimizes the plug-in operation efficiency, ensures the decoupling of plug-in elements and DOM elements, and avoids browser page crashes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116340680B_ABST
    Figure CN116340680B_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of display devices, and in particular, to a control method for display devices and plug-in object lifecycle management, which can, to a certain extent, solve the problem of improper browser page display caused by the inappropriate setting of plug-in cascading style sheet properties in the display device browser page, and the inappropriate creation and release timing of the plug-in formed by the coupling relationship between the plug-in and the DOM tree. The display device includes: a display; a controller, which is configured to: when adding a first plug-in with a non-formatted attribute to the system, if the first plug-in is determined to be a hybrid broadcast broadband television object, then a first page containing the first plug-in object is included, the first plug-in object contains the first plug-in, and a first plug-in instance; when removing the first plug-in object from the system, the control system does not release the first plug-in instance corresponding to the first plug-in object, so that when the first plug-in object is added to the system again, the first plug-in instance can be directly used to control the user interface to display the first page containing the first plug-in object.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of display devices, and in particular, to a control method for display devices and plug-in object lifecycle management. Background Art

[0002] The browsers installed in terminals such as smart TVs, smartphones, PC devices, and tablets have limited functions and often cannot meet the terminal network application function requirements. Therefore, the terminal browser can expand its own functions by loading plug-ins. For example, JavaScript (JavaScript scripting language) plug-ins can be used to obtain the terminal model and call the underlying functions of the terminal.

[0003] In some browser plug-in management implementations, the browser usually loads plug-ins in the following steps: first, the terminal browser is started, and then the browser determines all the plug-ins required for the network application in the terminal to implement the network functions with the help of the browser based on the configuration file, and then the browser loads all the plug-ins required for the network application to implement the network functions with the help of the browser.

[0004] However, when the browser displays an HBBTV (Hybrid Broadcast / Broadband TV) type page, if the plug-in's CSS (Cascading Style Sheets) properties are configured to not display layout, the page cannot display the plug-in object properly. Furthermore, based on page operations, if the plug-in object is removed from the DOM (Document Object Model) tree and then loaded again, the browser will crash and fail to display the page properly. Summary of the Invention

[0005] In order to solve the problem of abnormal browser page display caused by the inappropriate setting of plug-in cascading style sheet properties in the display device browser page and the inappropriate creation and release timing of the plug-in formed by the coupling relationship between the plug-in and the DOM tree, this application provides a display device and a playback control method for video applications.

[0006] The embodiment of the present application is implemented as follows:

[0007] A first aspect of an embodiment of the present application provides a display device, comprising: a display for displaying a user interface including a browser page, wherein the browser page includes a plug-in object; a controller, configured to: when adding a first plug-in with a non-formatted attribute to a system, if the first plug-in is determined to be a hybrid broadcast broadband television object, control the user interface to display a first page including the first plug-in object, wherein the first plug-in object includes a first plug-in and a first plug-in instance created based on the first plug-in; when removing the first plug-in object from the system, control the system not to release the first plug-in instance corresponding to the first plug-in object, so that the first plug-in instance can be directly used when the first plug-in object is added to the system again, so as to control the user interface to display the first page including the first plug-in object.

[0008] A second aspect of an embodiment of the present application provides a method for controlling plug-in object lifecycle management, the method comprising: when adding a first plug-in with a non-formatted attribute to a system, if the first plug-in is determined to be a hybrid broadcast broadband television object, displaying a first page containing the first plug-in object, the first plug-in object containing a first plug-in and a first plug-in instance created based on the first plug-in; when removing the first plug-in object from the system, controlling the system not to release the first plug-in instance corresponding to the first plug-in object, so that when the first plug-in object is added to the system again, the first plug-in instance can be directly used to display the first page containing the first plug-in object.

[0009] The beneficial effects of the present application are as follows: by creating a plug-in object and plug-in instance corresponding to a non-formatted plug-in, the normal display of the plug-in on the hybrid broadcast broadband TV page can be achieved; further, by retaining its corresponding plug-in instance during the process of removing the plug-in, the plug-in instance can be directly called when the plug-in is loaded again; further, in the process of page jump, the plug-in is deconstructed and the corresponding plug-in instance is released in time, which can achieve the timely release of memory resources, the decoupling of plug-in elements and DOM elements so that the corresponding plug-in can be used normally after the DOM tree elements are removed, the plug-in creation and release mechanism can be optimized, the frequent creation and release of plug-ins can be avoided, and the plug-in operation efficiency can be improved. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, a brief introduction will be given below to the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.

[0011] Figure 1 shows a usage scenario of a display device according to some embodiments;

[0012] Figure 2 shows a hardware configuration block diagram of the control device 100 according to some embodiments;

[0013] Figure 3 shows a hardware configuration block diagram of a display device 200 according to some embodiments;

[0014] Figure 4 shows a software configuration diagram in the display device 200 according to some embodiments;

[0015] Figure 5 shows an icon control interface display diagram of an application in a display device 200 according to some embodiments;

[0016] Figure 6A A schematic diagram of the process of creating a browser page plug-in object for a display device according to an embodiment of the present application is shown;

[0017] Figure 6B A schematic diagram of the process of creating a browser page plug-in object for a display device according to another embodiment of the present application is shown;

[0018] Figure 6C A schematic diagram of the process of removing a plug-in object from a DOM tree and then adding it again is shown in another embodiment of the present application;

[0019] Figure 6D A schematic diagram of the process of removing a plug-in object from a DOM tree and then adding it again is shown in another embodiment of the present application;

[0020] Figure 6E A schematic diagram of a process for implementing the destruction of a plug-in object in a browser page of a display device is shown in another embodiment of the present application;

[0021] Figure 6F A schematic diagram of a flow chart showing another embodiment of the present application for implementing the destruction of a plug-in object in a browser page of a display device. DETAILED DESCRIPTION

[0022] In order to make the purpose and implementation of this application clearer, the exemplary implementation of this application will be clearly and completely described below in conjunction with the drawings in the exemplary embodiments of this application. Obviously, the described exemplary embodiments are only part of the embodiments of this application, not all of the embodiments.

[0023] It should be noted that the brief descriptions of terms in this application are only for the purpose of facilitating the understanding of the embodiments described below, and are not intended to limit the embodiments of this application. Unless otherwise specified, these terms should be understood according to their ordinary and usual meanings.

[0024] In the specification and claims of this application and the accompanying drawings, the terms "first," "second," "third," etc. are used to distinguish similar or similar objects or entities, and are not necessarily intended to limit a particular order or sequence, unless otherwise noted. It should be understood that the terms used in this manner are interchangeable under appropriate circumstances.

[0025] The terms "comprise," "comprises," and "having," and any variations thereof, are intended to cover but not exclude inclusion; for example, a product or device comprising a list of components is not necessarily limited to all the components expressly listed but may include other components not expressly listed or inherent to such product or device.

[0026] The term "module" refers to any known or later developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and / or software code that is capable of performing the functionality associated with that element.

[0027] Figure 1 Schematic diagram of an operation scenario between a display device and a control device according to an embodiment. Figure 1 As shown, the user can operate the display device 200 through the smart device 300 or the control apparatus 100 .

[0028] In some embodiments, the control device 100 may be a remote controller. Communication between the remote controller and the display device may include infrared protocol communication, Bluetooth protocol communication, or other short-range communication methods, and the display device 200 may be controlled wirelessly or wired. The user may control the display device 200 by inputting user commands through buttons on the remote controller, voice input, control panel input, and the like.

[0029] In some embodiments, a smart device 300 (such as a mobile terminal, tablet computer, computer, laptop computer, etc.) can also be used to control the display device 200. For example, the display device 200 can be controlled using an application running on the smart device.

[0030] In some embodiments, the display device 200 can also be controlled in a manner other than the control device 100 and the smart device 300. For example, the user's voice command control can be directly received through a module for obtaining voice commands configured inside the display device 200, or the user's voice command control can be received through a voice control device set outside the display device 200.

[0031] In some embodiments, the display device 200 also communicates data with the server 400. The display device 200 may be connected to a local area network (LAN), a wireless local area network (WLAN), or other networks. The server 400 may provide various content and interactions to the display device 200. The server 400 may be a single cluster or multiple clusters, and may include one or more types of servers.

[0032] Figure 2 Schematically shows a block diagram of the configuration of the control device 100 according to an exemplary embodiment. Figure 2 As shown, the control device 100 includes a controller 110, a communication interface 130, a user input / output interface 140, a memory, and a power supply. The control device 100 can receive user input operation commands and convert the operation commands into commands that the display device 200 can recognize and respond to, acting as an interaction medium between the user and the display device 200.

[0033] Figure 3 FIG. 2 is a block diagram showing a hardware configuration of the display device 200 according to an exemplary embodiment.

[0034] In some embodiments, the display apparatus 200 includes at least one of a tuner 210 , a communicator 220 , a detector 230 , an external device interface 240 , a controller 250 , a display 260 , an audio output interface 270 , a memory, a power supply, and a user interface.

[0035] In some embodiments, the controller includes a processor, a video processor, an audio processor, a graphics processor, RAM, ROM, and first to nth interfaces for input / output.

[0036] In some embodiments, the display 260 includes a display screen component for presenting images, and a driving component for driving image display, a component for receiving image signals output from a controller, and a component for displaying video content, image content, and a menu control interface and a user control UI interface.

[0037] In some embodiments, the display 260 may be a liquid crystal display, an OLED display, a projection display, or a projection device and a projection screen.

[0038] In some embodiments, the communicator 220 is a component used to communicate with external devices or servers using various communication protocols. For example, the communicator may include at least one of a Wi-Fi module, a Bluetooth module, a wired Ethernet module, or other network communication protocol chip or a near-field communication protocol chip, as well as an infrared receiver. The display device 200 can use the communicator 220 to send and receive control signals and data signals with the external control device 100 or the server 400.

[0039] In some embodiments, the user interface may be configured to receive a control signal from the control device 100 (eg, an infrared remote controller, etc.).

[0040] In some embodiments, detector 230 is used to collect signals from the external environment or external interactions. For example, detector 230 may include a light receiver, such as a sensor for collecting ambient light intensity; or an image collector, such as a camera, for collecting external environmental scenes, user attributes, or user interaction gestures; or a sound collector, such as a microphone, for receiving external sounds.

[0041] In some embodiments, the external device interface 240 may include, but is not limited to, any one or more of the following: a high-definition multimedia interface (HDMI), an analog or digital high-definition component input interface (component), a composite video input interface (CVBS), a USB input interface (USB), an RGB port, etc. It may also be a composite input / output interface formed by multiple of the above interfaces.

[0042] In some embodiments, the tuner-demodulator 210 receives broadcast television signals via wired or wireless reception, and demodulates audio and video signals, such as EPG data signals, from a plurality of wireless or wired broadcast television signals.

[0043] In some embodiments, the controller 250 and the tuner 210 may be located in different separate devices, that is, the tuner 210 may also be located in an external device of the main device where the controller 250 is located, such as an external set-top box.

[0044] In some embodiments, controller 250 controls the operation of the display device and responds to user operations via various software control programs stored in memory. Controller 250 controls the overall operation of display device 200. For example, in response to receiving a user command to select a UI object for display on display 260, controller 250 may perform operations related to the object selected by the user command.

[0045] In some embodiments, the object may be any selectable object, such as a hyperlink, an icon, or other operable control. Operations associated with the selected object include: displaying a page, document, or image connected to the hyperlink, or executing a program corresponding to the icon.

[0046] In some embodiments, the controller includes at least one of a central processing unit (CPU), a video processor, an audio processor, a graphics processing unit (GPU), RAM Random Access Memory (RAM), ROM (Read-Only Memory, ROM), a first interface to an nth interface for input / output, a communication bus (Bus), etc.

[0047] The CPU is used to execute operating system and application instructions stored in memory, as well as various interactive instructions received from external input, to execute various applications, data, and content, ultimately displaying and playing various audio and video content. The CPU can include multiple processors, such as a main processor and one or more sub-processors.

[0048] In some embodiments, a graphics processor is used to generate various graphical objects, such as icons, operation menus, and graphics displayed in response to user input commands. The graphics processor includes an arithmetic unit, which performs operations based on various user interaction commands and displays various objects according to display attributes; and a renderer, which renders the various objects generated by the arithmetic unit. These rendered objects are then displayed on the display.

[0049] In some embodiments, the video processor is used to receive an external video signal and perform video processing such as decompression, decoding, scaling, noise reduction, frame rate conversion, resolution conversion, and image synthesis according to the standard codec protocol of the input signal to obtain a signal that can be directly displayed or played on the display device 200.

[0050] In some embodiments, the video processor includes a demultiplexing module, a video decoding module, an image synthesis module, a frame rate conversion module, a display formatting module, and the like. The demultiplexing module is used to demultiplex the input audio and video data stream. The video decoding module is used to process the demultiplexed video signal, including decoding and scaling processing. The image synthesis module, such as an image synthesizer, is used to superimpose and mix the GUI signal generated by the graphics generator according to user input or itself with the scaled video image to generate an image signal for display. The frame rate conversion module is used to convert the input video frame rate. The display formatting module is used to receive the frame rate converted video output signal and change the signal to conform to the display format signal, such as outputting an RGB data signal.

[0051] In some embodiments, the audio processor is used to receive an external audio signal, perform decompression and decoding according to the standard codec protocol of the input signal, as well as noise reduction, digital-to-analog conversion, and amplification processing to obtain a sound signal that can be played in a speaker.

[0052] In some embodiments, the user may input a user command through a graphical user interface (GUI) displayed on the display 260, and the user input interface receives the user input command through the graphical user interface (GUI). Alternatively, the user may input a user command through a specific sound or gesture, and the user input interface may recognize the sound or gesture through a sensor to receive the user input command.

[0053] In some embodiments, a "user interface" is a medium interface for interaction and information exchange between an application or operating system and a user. It enables the conversion between the internal form of information and a form acceptable to the user. A common form of user interface is a graphical user interface (GUI), which refers to a user interface related to computer operations that uses a graphical display. It can be an icon, window, control, or other interface element displayed on the display of an electronic device. Controls can include visual interface elements such as icons, buttons, menus, tabs, text boxes, dialog boxes, status bars, navigation bars, and widgets.

[0054] In some embodiments, the system of the display device may include a kernel, a command parser (shell), a file system, and applications. The kernel, shell, and file system together form the basic operating system structure, which allows users to manage files, run programs, and use the system. After power is turned on, the kernel starts, activates kernel space, abstracts hardware, initializes hardware parameters, runs and maintains virtual memory, schedulers, signals, and inter-process communication (IPC). After the kernel starts, the shell and user applications are loaded. After startup, the application is compiled into machine code to form a process.

[0055] See also Figure 4 In some embodiments, the system is divided into four layers, namely, from top to bottom, the application layer (referred to as "application layer"), the application framework layer (referred to as "framework layer"), the Android runtime and system library layer (referred to as "system runtime library layer"), and the kernel layer.

[0056] In some embodiments, at least one application runs in the application layer. These applications can be window programs, system settings programs, clock programs, etc. that come with the operating system, or applications developed by third-party developers. In specific implementations, the application packages in the application layer are not limited to the above examples.

[0057] The framework layer provides applications with an application programming interface (API) and programming framework. The application framework layer includes predefined functions. The application framework layer acts as a processing center, determining the actions taken by applications in the application layer. Through the API, applications can access system resources and services during execution.

[0058] like Figure 4 As shown, in the embodiment of the present application, the application framework layer includes managers, content providers, etc., wherein the manager includes at least one of the following modules: an activity manager (ActivityManager) is used to interact with all activities running in the system; a location manager (Location Manager) is used to provide system services or applications with access to system location services; a package manager (Package Manager) is used to retrieve various information related to the application packages currently installed on the device; a notification manager (NotificationManager) is used to control the display and clearing of notification messages; a window manager (Window Manager) is used to manage icons, windows, toolbars, wallpapers, and desktop widgets on the user interface.

[0059] In some embodiments, the activity manager is used to manage the lifecycle of each application and common navigation back functions, such as controlling the exit, opening, and backing of an application. The window manager is used to manage all window programs, such as obtaining the display screen size, determining whether there is a status bar, locking the screen, taking screenshots, and controlling display window changes (such as shrinking the display window, shaking the display, distorting the display, etc.).

[0060] In some embodiments, the system runtime layer provides support for the upper layer, namely the framework layer. When the framework layer is used, the Android operating system will run the C / C++ library contained in the system runtime layer to implement the functions to be implemented by the framework layer.

[0061] In some embodiments, the kernel layer is a layer between hardware and software. Figure 4As shown, the kernel layer includes at least one of the following drivers: audio driver, display driver, Bluetooth driver, camera driver, WIFI driver, USB driver, HDMI driver, sensor driver (such as fingerprint sensor, temperature sensor, pressure sensor, etc.), and power driver, etc.

[0062] In some embodiments, after the display device is started, it can directly enter the interface of the preset video on demand program. The interface of the video on demand program can be as follows: Figure 5 As shown in FIG, the application layer includes at least a navigation bar 510 and a content display area below the navigation bar 510. The content displayed in the content display area changes according to the selected control in the navigation bar. Applications in the application layer can be integrated into the video-on-demand application and displayed through a control in the navigation bar, or further displayed after the application control in the navigation bar is selected.

[0063] In some embodiments, after the display device is started, it can directly enter the display interface of the last selected signal source, or the signal source selection interface, where the signal source can be a preset video on demand program, or at least one of an HDMI interface, a live TV interface, etc. After the user selects a different signal source, the display can display content obtained from different signal sources.

[0064] The embodiments of the present application can be applied to various types of display devices. The following will describe the plug-in management and control scheme and method in the process of displaying browser pages on a smart TV.

[0065] Figure 6A A schematic diagram of the creation process of a display device browser page plug-in object according to an embodiment of the present application is shown.

[0066] PPAPI (Pepper Plugin Application Interface): In the Chrome browser, PPAPI components exist in two forms: trusted components and untrusted components.

[0067] Trusted PPAPI components can be loaded directly by the browser in the form of platform dynamic libraries. They can be implemented as dll files in Windows and as so files in Linux. They can be loaded as built-in Flash components or PDF components, or by specifying the command line parameter --register-pepper-Plugins. For example:

[0068] chrome--register-pepper-Plugins="D:\\ppapi\\ppapi_example_gles2.dll; application / x-ppapi-example-gles2″D:\\ppapi\\gles2.html;

[0069] This solution is often used for debugging. The trusted PPAPI component exists in the form of a platform dynamic library, so APIs generally allowed in the Chrome sandbox, such as the CreateThread function, can be called.

[0070] Untrusted PPAPI components need to be published using the Native Client mechanism, published as a native client to the Chrome Web Store, or published on a network server as a Portable Native Client.

[0071] In some embodiments, after the TV browser page is started, the controller creates various Object tags (object tags) contained in the browser page, and after the object tags are created, they are typeset and displayed; the controller determines whether the object tag contains a plug-in type of PPAPI (plug-in application programming interface). For the sake of convenience of description, this application will refer to it as a plug-in.

[0072] For plug-in type object tags, the controller needs to obtain its CSS (Cascading Style Sheets) properties. When the plug-in's Cascading Style Sheets properties are involved in typesetting, the controller creates a plug-in object and its corresponding plug-in process to complete the creation of the plug-in object so that the browser page can display the plug-in object content normally.

[0073] CSS (Cascading Style Sheets) is a computer language used to express the style of documents such as HTML (an application of Standard Generalized Markup Language) or XML (a subset of Standard Generalized Markup Language). CSS can not only be used to statically modify web pages, but can also be used with various scripting languages to dynamically format web page elements.

[0074] It can be understood that CSS properties can provide pixel-level precise control over the layout of element positions on web pages, support almost all font sizes and styles, and have the ability to edit web page objects and model styles.

[0075] Figure 6B A schematic diagram of the creation process of a display device browser page plug-in object according to another embodiment of the present application is shown.

[0076] The display device provided in the present application includes a display, which can display a user interface including a browser page, wherein the browser page includes a plug-in object, and the plug-in object can be implemented in different types and quantities.

[0077] In some embodiments, after a TV browser page is launched, the controller creates the various object tags (object tags) included in the browser page. After the object tags are created, they are typeset and displayed. The controller then determines whether the object tags contain a plug-in type specified by the PPAPI (Plugin Application Programming Interface). For plug-in type object tags, the controller obtains their CSS (Cascading Style Sheets) properties. If the plug-in's CSS properties are set to participate in typesetting, the controller creates a plug-in object and its corresponding plug-in instance, completing the creation of the plug-in object so that the browser page can properly display the plug-in object content.

[0078] During the display of a user interface browser page, when a first plug-in with a non-formatted attribute is added to the system, if the first plug-in is determined to be an HBBTV (Hybrid Broadcast / Broadband TV) object, the user interface is controlled to display a first page containing the first plug-in object, where the first plug-in object includes a first plug-in and a first plug-in instance created based on the first plug-in.

[0079] For example, when the first page is displayed, the page contains the first plug-in, and its cascading style sheet attribute is to participate in typesetting, the controller usually creates a corresponding plug-in object and its corresponding plug-in instance to complete the creation of the plug-in object;

[0080] When the cascading style sheet property of the first plug-in is non-layout, that is, it does not participate in layout display, the controller will determine whether the first plug-in is a hybrid broadcast broadband TV object; if the controller determines that the first plug-in is a hybrid broadcast broadband TV object, the controller will generate its corresponding first plug-in instance (Instance) based on the first plug-in to complete the creation of the first plug-in object in the first page so that it can be displayed normally.

[0081] It is understandable that when displaying non-HBBTV pages, the plug-in's cascading style sheet attribute is set to "no layout" and the page can still be displayed normally even if the corresponding plug-in instance and plug-in object are not created. However, when displaying HBBTV pages, if the corresponding plug-in instance and plug-in object are not created for the plug-in whose cascading style sheet attribute is set to "no layout", the browser page may not be displayed normally.

[0082] That is, during the display implementation of the HBBTV page, when the CSS property of the plug-in object is display:none (the object does not participate in typesetting), if the controller does not create the plug-in, the page will not be displayed normally; on the contrary, when the CSS property of the plug-in object is display:none (the object does not participate in typesetting), the plug-in is a special requirement object, the controller creates the plug-in normally, and the page can be displayed normally.

[0083] HBBTV (Hybrid Broadcast / Broadband TV) is a DVB-compatible content distribution platform that enhances and integrates interactive television signaling and transmission, optimizing presentation quality. The HBBTV standard is a technical standard jointly developed by the HBBTV Association, its partner organization DVB, and the Open IPTV Forum. It regulates emerging service formats such as push-based video on demand (VoD) and defines interoperability between different services and various types of terminals. Hybrid terminals compliant with the HBBTV standard can simultaneously access the television broadcast network, the internet, and various "companion screen" devices, such as smartphones and tablets.

[0084] Figure 6C A schematic diagram of a process of removing a plug-in object from a DOM tree and then adding it again according to another embodiment of the present application is shown.

[0085] In some embodiments, after the plug-in object of the display device browser page deletes the node from the DOM (Document Object Model) tree, the controller controls the page to layout and display; after the plug-in object is removed from the DOM tree, the controller will delete the plug-in child object created by the corresponding Instance of the plug-in, and delete the plug-in object corresponding to the plug-in instance created by the plug-in, so that the created plug-in object and child object cannot be used normally; when the removed plug-in object needs to be used here, the controller will re-add the object to the DOM tree and create a corresponding PPAPI plug-in.

[0086] In some embodiments, after implementing PPAPI plug-in independence on the HBBTV page, the ODIN browser, Chromium browser, and decentralized browser discover that after the VideoBroadCast object obtains the Channel object, the webpage removes the original VideoBroadCast object from the DOM tree, recreates a VideoBroadCast object, and then sets the previously obtained Channel object to the new VideoBroadCast object. At this time, the browser crashes due to the use of this Channel object.

[0087] It can be understood that when the PPAPI plug-in object is removed from the DOM tree, the Instance (plug-in instance) corresponding to the plug-in object will also be released. Then all plug-in objects associated with the released Instance (plug-in instance) will be released. The browser crashes because the obtained Channel object has been released.

[0088] Based on the HBBTV (Hybrid Broadcast Broadband Television) page display specifications, the above situation is a case where the plug-in object is removed from the DOM tree. There are also cases where the CSS property of some plug-in objects is display:none (not participating in typesetting and display). In this case, in some plug-in management solutions, the plug-in of this type of PPAPI plug-in object is not created in the original process, which also leads to abnormal display.

[0089] Chromium is a widely used web browser for mobile devices. It is released under multiple licenses, including the BSD (Berkley Software Distribution) license, and its source code is open source. The goal is to create a secure, stable, and fast universal browser. Its architecture utilizes a web page layout engine to improve JavaScript parsing efficiency, and features such as "sandboxing," "blacklisting," and "private browsing" to ensure a stable and secure web browsing environment.

[0090] In some embodiments, when a plug-in object is removed from the DOM tree, the plug-in object is a special requirement object, and the controller retains the Instance of the plug-in and does not release it.

[0091] When the webpage system removes a first plug-in object of the HBBTV type, the controller controls the system not to release the first plug-in instance corresponding to the first plug-in object, so that when the first plug-in object is added to the system again, the first plug-in instance can be directly used to control the user interface to display the first page containing the first plug-in object, thereby avoiding the webpage display crashing when the first plug-in object is loaded again.

[0092] For example, after the plug-in object of the browser page is deleted from the DOM (Document Object Model) tree, the controller controls the page layout and display; the controller will determine whether the deleted plug-in object is an HBBTV object or a specific object. If the determination result is no, it will execute Figure 6C The process shown;

[0093] If the plugin object is determined to be an HBBTV object or a specific object, the controller will retain the plugin instance corresponding to the object element deleted from the DOM tree;

[0094] When the object is added to the DOM tree again, the controller will add the object pointer to the corresponding Document management, so that the web page operation object plug-in can operate normally and its child objects can also be used normally. When the plug-in object is added to the DOM tree again, the original plug-in can be used directly without re-creating the plug-in. The process is shown as follows Figure 6D The document mentioned in the drawings and description of this application can actually be implemented as a relatively important kernel object in the Chrome browser kernel, which is represented on the web page as JavaScript Document, but it is richer in the kernel. On the web page, you can only operate the method attributes added by the browser in the Document and the interfaces released to the outside, while in the kernel code, you can operate typesetting, parsing, data setting, web page release management, etc.

[0095] In some embodiments, after the first plug-in object is removed from the DOM tree, the display device controller controls the system not only not to release the first plug-in instance corresponding to the first plug-in object, but also not to release the second plug-in object associated with the first plug-in instance, so that when the first plug-in object is added to the system again, the original first plug-in instance and other plug-in objects associated with the first plug-in instance, such as the second plug-in object, or the third plug-in object, etc., can be directly called to avoid page crashes in the browser.

[0096] In some embodiments, the display device controller controls the system not to release the first plug-in instance corresponding to the first plug-in object, so that the first plug-in instance can be directly used when the first plug-in object is added to the system again.

[0097] It can be understood that when the first plug-in object is removed from the system, the controller can be implemented as a control system, that is, the web page system does not destroy the first plug-in, thereby retaining the first plug-in instance corresponding to the first plug-in object. In this way, the first plug-in instance can be stored and run in the memory all the time, so that when the first plug-in object is added to the system again, the controller can directly call the first plug-in instance for the display and operation of the first plug-in object.

[0098] It can be understood that the above plug-in management solution decouples PPAPI plug-in elements and DOM elements, so that after the elements on the DOM tree are removed, the corresponding PPAPI plug-in elements can be used normally, optimizing the plug-in creation and release mechanism, avoiding the frequent creation and release of PPAPI plug-ins, and improving the operating efficiency of the entire plug-in.

[0099] It can be understood that based on the current mainstream open source Chromium browser as the basis for related business development, PPAPI plug-in technology can realize the expansion of tag objects for different types of Object objects; through the technical solution provided by this application, the Chromuim browser PPAPI plug-in tag element object life cycle can meet the life cycle requirements of HBBTV element objects. The CSS properties required in the HBBTV specification are display: none, objects are removed from the DOM tree, objects are hidden by other objects, and objects are outside the visible area of the screen. In many scenarios, HBBTV page elements can be used normally.

[0100] The DOM (Document Object Model) tree is a standard programming interface for processing Extensible Markup Languages (XML) recommended by the W3C. It is a platform- and language-independent application programming interface (API) that allows programs and scripts to dynamically access and update the content, structure, and style of documents. HTML and XML documents are defined by their descriptors. Documents can be further processed, and the results of the processing can be added to the current page.

[0101] DOM is a tree-based API document that requires the entire document to be represented in memory during processing; another simple API is event-based SAX, which can be used to process very large XML documents. Due to their large size, they are not suitable for processing in memory. Instance (system plug-in instance), also referred to as plug-in instance in this application, is a series of plug-in instances in the operating system and the memory blocks allocated for these plug-in instances. Instance is a plug-in instance, not a process. For a PPAPI plug-in, there is only one plug-in process, but there can be many instances. An object with an Object tag of plug-in will create a corresponding instance.

[0102] Figure 6E A schematic diagram of a flow chart showing another embodiment of the present application for implementing the destruction of a plug-in object in a browser page of a display device.

[0103] In some embodiments, when the Instance (plugin instance) corresponding to the plug-in object is destroyed, the plug-in object is also destroyed, but its corresponding resources are not released immediately; after the plug-in object is removed from the DOM tree, the plug-in object is released.

[0104] For example, when jumping within a browser web page, the Document in the page begins to close, and the controller will separate all typesetting objects contained in the page, as well as all typeset plug-in objects. Then the controller controls the RederFrame (reorganization frame) corresponding to the plug-in to be destroyed, and controls the Instance (plug-in instance) corresponding to the plug-in to wait for the system's GC (Garbage Collection: garbage collector) to recycle. After the garbage collector completes memory recovery, the plug-in and its corresponding plug-in instance are destroyed.

[0105] In contrast to construction, when an object in a web system ends its life cycle, such as when the function in which the object resides has been called, the system will automatically execute destruction. Taking C++ language as an example, the destructor name should also be the same as the class name, except that a bitwise inversion symbol ~ is added in front of the function name, such as ~stud(), to distinguish it from the constructor. It cannot take any parameters and has no return value (including void type). There can only be one destructor and it cannot be overloaded. If the user does not write a destructor, the compilation system will automatically generate a default destructor. Even if a destructor is customized, the compiler will always synthesize a destructor. And if a destructor is customized, the compiler will call the customized destructor first and then the synthesized destructor during execution.

[0106] In some embodiments, when the browser page of the display device jumps from a first page to a second page that does not contain the first plug-in, the controller controls the system to deconstruct the non-formatted first plug-in and immediately releases its corresponding first plug-in instance, thereby releasing the memory usage corresponding to the first plug-in instance.

[0107] For example, when jumping within a browser web page, the Document in the page begins to close, and the controller will separate all typesetting objects contained in the page, as well as all typeset plug-in objects; then the controller will deconstruct the RederFrame (reorganization frame) corresponding to the plug-in, and immediately release the Instance (plug-in instance) corresponding to the plug-in, and deconstruct the plug-in and its corresponding plug-in instance. In some embodiments, when jumping within a browser web page, the controller deconstructs the first plug-in and immediately releases its corresponding first plug-in instance, and then deletes the object pointer corresponding to the released first plug-in from the Document. Delete the object pointer corresponding to the released plug-in from the Document, separate all plug-in objects that do not participate in typesetting, thereby completing the destruction process of the plug-in and its corresponding plug-in instance, and releasing system content in a timely manner, such as Figure 6F shown.

[0108] It can be understood that the above solution optimizes the plug-in resource release mechanism, making the release of PPAPI plug-in resources on the browser page more timely and reducing the memory usage of browser plug-in elements; the plug-in lifecycle management technical solution provided by this application can immediately recycle the system memory resources corresponding to the process when the plug-in object process is destroyed, and bind the object lifecycle and Document during the process of adding the plug-in object again after being removed from the DOM tree.

[0109] Based on the above description of the control scheme for implementing browser page plug-in object lifecycle management on a display device and the related accompanying drawings, this application also provides a control method for plug-in object lifecycle management, the method comprising: when adding a first plug-in with a non-formatted attribute to a system, if the first plug-in is determined to be a hybrid broadcast broadband television object, displaying a first page containing the first plug-in object, the first plug-in object containing a first plug-in and a first plug-in instance created based on the first plug-in; when the first plug-in object is removed from the system, controlling the system not to release the first plug-in instance corresponding to the first plug-in object, so that when the first plug-in object is added to the system again, the first plug-in instance can be directly used to display the first page containing the first plug-in object. The method has been described in detail in the control scheme for implementing browser page plug-in object lifecycle management on a display device and will not be repeated here.

[0110] In some embodiments, after controlling the system not to release the first plug-in instance corresponding to the first plug-in object, the method further includes controlling the system not to release the second plug-in object associated with the first plug-in instance, thereby preventing the browser from crashing when the first plug-in object is added to the system again. This method has been described in detail in the control scheme for implementing browser page plug-in object lifecycle management on a display device and will not be repeated here.

[0111] In some embodiments, controlling the system to not release the first plug-in instance corresponding to the first plug-in object, so that the first plug-in instance can be directly used when the first plug-in object is added to the system again, specifically includes: controlling the system to not destroy the first plug-in when the first plug-in object is removed from the system; and retaining the first plug-in instance corresponding to the first plug-in object, so that the first plug-in instance can be directly called when the first plug-in object is added to the system again. This method has been described in detail in the control scheme for implementing browser page plug-in object lifecycle management on a display device and will not be repeated here.

[0112] In some embodiments, after displaying a first page containing a first plug-in object, the method further includes: when the first page jumps to a second page that does not contain the first plug-in, controlling the system to destroy the first plug-in without layout, and immediately releasing its corresponding first plug-in instance, thereby releasing the memory occupied by the first plug-in instance. This method has been described in detail in the control scheme for implementing browser page plug-in object lifecycle management on a display device and will not be repeated here.

[0113] In some embodiments, controlling the system to destroy the non-formatting first plug-in and immediately release its corresponding first plug-in instance specifically includes: destroying the first plug-in and immediately releasing its corresponding first plug-in instance; and deleting the object pointer corresponding to the released first plug-in from the Document. This method has been described in detail in the control scheme for implementing browser page plug-in object lifecycle management on a display device and will not be repeated here.

[0114] The beneficial effects of the embodiments of the present application are that, by creating a plug-in object and a plug-in instance corresponding to a non-formatted plug-in, the normal display of the plug-in on the hybrid broadcast broadband TV page can be achieved; further, by retaining its corresponding plug-in instance during the removal of the plug-in, the plug-in instance can be directly called when the plug-in is loaded again; further, during the page jump process, the plug-in is deconstructed and the corresponding plug-in instance is released in a timely manner, which can achieve the timely release of memory resources, the decoupling of the plug-in elements and the DOM elements so that the corresponding plug-in can be used normally after the DOM tree elements are removed, the plug-in creation and release mechanism can be optimized, the frequent creation and release of plug-ins can be avoided, and the plug-in operation efficiency can be improved.

[0115] In addition, it will be understood by those skilled in the art that various aspects of the present application can be illustrated and described by a number of patentable categories or situations, including any new and useful process, machine, product or combination of substances, or any new and useful improvements thereto. Accordingly, various aspects of the present application can be performed entirely by hardware, entirely by software (including firmware, resident software, microcode, etc.), or by a combination of hardware and software. The above hardware or software can all be referred to as "data blocks", "controllers", "engines", "units", "components" or "systems". In addition, various aspects of the present application may be represented as computer products located in one or more computer-readable media, which include computer-readable program code.

[0116] A computer storage medium may include a propagated data signal embodying a computer program code, for example, in baseband or as part of a carrier wave. The propagated signal may be in a variety of forms, including electromagnetic, optical, or any suitable combination thereof. A computer storage medium may be any computer-readable medium other than a computer-readable storage medium that can be connected to an instruction execution system, apparatus, or device to communicate, propagate, or transfer the program for use. The program code on the computer storage medium may be transmitted via any suitable medium, including radio, cable, fiber optic cable, RF, or similar media, or any combination of the above.

[0117] The computer program code required for the operation of each part of the present application can be written in any one or more programming languages, including object-oriented programming languages such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB.NET, Python, etc., conventional procedural programming languages such as C language, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages. The program code can be run entirely on the user's computer, or as an independent software package on the user's computer, or partly on the user's computer and partly on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any network form, such as a local area network (LAN) or a wide area network (WAN), or connected to an external computer (e.g., via the Internet), or in a cloud computing environment, or used as a service such as software as a service (SaaS).

[0118] In addition, unless expressly stated in the claims, the order of the processing elements and sequences described in this application, the use of alphanumeric characters, or the use of other names are not intended to limit the order of the processes and methods of this application. Although the above disclosure discusses some of the invention embodiments currently considered useful through various examples, it should be understood that such details are only for illustrative purposes, and the attached claims are not limited to the disclosed embodiments. On the contrary, the claims are intended to cover all modifications and equivalent combinations that are consistent with the essence and scope of the embodiments of this application. For example, although the system components described above can be implemented by hardware devices, they can also be implemented only by software solutions, such as installing the described system on an existing server or mobile device.

[0119] Similarly, it should be noted that, in order to simplify the presentation of this application and thus facilitate understanding of one or more embodiments of the invention, the foregoing descriptions of the embodiments of this application sometimes combine multiple features into a single embodiment, figure, or description thereof. However, this disclosure method does not mean that the subject matter of this application requires more features than those recited in the claims. In fact, an embodiment may have fewer features than all of the features of a single embodiment disclosed above.

[0120] Each patent, patent application, patent application disclosure, and other materials, such as articles, books, specifications, publications, documents, etc., cited in this application is hereby incorporated by reference in its entirety. This includes application history documents that are inconsistent with or conflict with the content of this application, as well as documents (currently or subsequently attached to this application) that limit the broadest scope of the claims of this application. It should be noted that if the descriptions, definitions, and / or use of terms in the accompanying materials of this application are inconsistent or conflicting with the content of this application, the descriptions, definitions, and / or use of terms in this application shall prevail.

Claims

1. A display device, characterized in that: include: A display, configured to display a user interface including a browser page, wherein the browser page includes a plug-in object; The controller is configured as: When adding a first plug-in with a non-formatted attribute to the system, if it is determined that the first plug-in is a hybrid broadcast broadband television object, controlling the user interface to display a first page including the first plug-in object, the first plug-in object including the first plug-in and a first plug-in instance created based on the first plug-in; When the first plug-in object is removed from the system, the system is controlled not to release the first plug-in instance corresponding to the first plug-in object, so that when the first plug-in object is added to the system again, the first plug-in instance can be directly used to control the user interface to display a first page including the first plug-in object.

2. The display device according to claim 1, wherein: After the controller controls the system not to release the first plug-in instance corresponding to the first plug-in object, the controller is further configured to: The system is controlled not to release the second plug-in object associated with the first plug-in instance, so as to avoid page crash in the browser when the first plug-in object is added to the system again.

3. The display device according to claim 1, wherein: The controller controls the system not to release the first plug-in instance corresponding to the first plug-in object, so that the first plug-in instance can be directly used when the first plug-in object is added to the system again, specifically comprising: When the first plug-in object is removed from the system, the controller controls the system not to destroy the first plug-in; The first plug-in instance corresponding to the first plug-in object is retained, so that the first plug-in instance can be directly called when the first plug-in object is added to the system again.

4. The display device according to claim 1, wherein: After controlling the user interface to display the first page including the first plug-in object, the controller is further configured to: When the first page jumps to the second page that does not include the first plug-in, the system is controlled to destroy the first plug-in that is not typeset, and immediately release the corresponding first plug-in instance, thereby releasing the memory occupied by the first plug-in instance.

5. The display device according to claim 4, wherein: Controlling the system to destroy the first plug-in that is not typeset and immediately releasing its corresponding first plug-in instance specifically includes a controller: Destructing the first plug-in and immediately releasing its corresponding first plug-in instance; The object pointer corresponding to the released first plug-in is deleted from the Document.

6. A control method for plug-in object lifecycle management, characterized in that: The method comprises: When adding a first plug-in with a non-formatting attribute to the system, if it is determined that the first plug-in is a hybrid broadcast broadband television object, a first page including the first plug-in object is displayed, wherein the first plug-in object includes the first plug-in and a first plug-in instance created based on the first plug-in; When the first plug-in object is removed from the system, the system is controlled not to release a first plug-in instance corresponding to the first plug-in object, so that when the first plug-in object is added to the system again, the first plug-in instance can be directly used to display a first page including the first plug-in object.

7. A method for controlling plug-in object lifecycle management according to claim 6, characterized in that: After controlling the system not to release the first plug-in instance corresponding to the first plug-in object, the method further includes: The system is controlled not to release the second plug-in object associated with the first plug-in instance, so as to avoid page crash in the browser when the first plug-in object is added to the system again.

8. A method for controlling plug-in object lifecycle management according to claim 6, characterized in that: Controlling the system not to release the first plug-in instance corresponding to the first plug-in object so that the first plug-in instance can be directly used when the first plug-in object is added to the system again, specifically includes: When the first plug-in object is removed from the system, controlling the system not to destroy the first plug-in; The first plug-in instance corresponding to the first plug-in object is retained, so that the first plug-in instance can be directly called when the first plug-in object is added to the system again.

9. The method for controlling plug-in object lifecycle management according to claim 6, characterized in that: After displaying the first page including the first plug-in object, the method further includes: When the first page jumps to the second page that does not include the first plug-in, the system is controlled to destroy the first plug-in that is not typeset, and immediately release the corresponding first plug-in instance, thereby releasing the memory occupied by the first plug-in instance.

10. A method for controlling plug-in object lifecycle management according to claim 9, characterized in that: Controlling the system to destroy the first plug-in that is not typeset and immediately releasing the corresponding first plug-in instance specifically includes: Destructing the first plug-in and immediately releasing its corresponding first plug-in instance; The object pointer corresponding to the released first plug-in is deleted from the Document.

Citation Information

Patent Citations

  • Signal transmitting apparatus, signal transmitting method, and system for transmitting and receiving signal

    CN105075274A

  • Webpage page display method and page display plug-in

    CN106339226A